umlenken von stdin geht nicht

  • hi
    Ich wollte mir ein Prog schreiben das eigentlich nur einen simplen Kopierforgang bewältigen soll. Den Inhalt von text1.txt in text2.txt kopieren.
    Leider macht mir die Umlenkung von stdin,stdout noch Probleme.
    Wenn ich die Umlenkung wegnehme erfüllt das Prog seine Aufgabe.


    Code
    einauscp < D:\text1.txt > D:\text2.txt;


    C++ program unter Windows.



    ich hoffe das die Einrückung passt (bin mir da nich so ganz sicher).


    mfg

    Pc 1
    tod


    Pc 2
    Cpu 1GHz
    Betriebssystem gen2vdr 1.2
    Geforce 5200fx
    Soundkarte ultron octo-sound 7.1
    256 mbram
    TVkarte skystar 2
    LCD Samsung KS0107 / KS0108 Standard-Controller (CFAG12864B-TMI-V)

    Einmal editiert, zuletzt von Rumkugel ()

  • Hi!


    Dein Code ist ja schon fast richtig. Habe ein bisschen was kommentiert. Optimal ist es aber nicht, da Du ja byteweise einliest.


    Für was brauchst Du das denn? Unter Linux geht das auch mit "cat" und "cp". Windows kennt "copy".


    Gruß,
    Andreas

  • Erstmal danke für die Antwort


    Ich hab noch ein bischen rumgelesen und entdeckt das das einauscp eigentlich
    gar keinen Code sondern der Programname sein soll. Daraufhin habe ich es
    mit

    Code
    D:\main<D:\test1.txt>D:\test2.txt


    versucht ging aber auch nicht. Jetzt bin ich so weit das ich vermute das die umlenkung gar nicht zum Quelltext gehört. Also Proramm ausführen und in die Doskonsole das reinschreiben
    D:\main<D:\test1.txt>D:\test2.txt
    was leider auch nicht fuktioniert hat.


    Zitat

    Dein Code ist ja schon fast richtig. Habe ein bisschen was kommentiert. Optimal ist es aber nicht, da Du ja byteweise einliest.


    Ich habe mal beide Codes ausgeführt und keinen Unterschied in der Ausgabe
    festgestellt. Beide scheinen ihren Zeck zu erfüllen. Leider war das nicht mein Problem. Ich wollte
    die stdin und stdout , die ja beide standardmäßig auf Tastatur und Bildschirm
    eingestellt sind, auf Textdateien umlenken.


    Zitat

    Für was brauchst Du das denn? Unter Linux geht das auch mit "cat" und "cp". Windows kennt "copy".


    Ich bin gerade dabei mich mit c++ vertraut zu machen(mehr schlecht als recht)
    und da wollte ich einfach mal ein paar sachen ausprobieren. Zum einen weil ich meinen Pc besser verstehen will. Zum anderen weil ich mich mit
    Microkontrollern beschäftige (habe mir das STK 500 zugelegt) und da ist
    es möglich mit c++ zu arbeiten.
    Gebrauchen kann man die Umlenkung ja für vieles. Z. B. zum protokolieren
    da man ja mit fprintf und stderr Text und Fehlermeldung in verschiedene Richtungen lenken kann. Ich wollte es allerdings für eine Rot13 Verschlüsselung missbrauchen.Mein Gedanke war es das a in einen string
    zu packen und dann durch die Draufrechnung von z.B. +5 (was bei char geht allerdings nicht bei char arrays wie ich feststellen mußte)einen neuen Text zu erzeugen.


    mfg

    Pc 1
    tod


    Pc 2
    Cpu 1GHz
    Betriebssystem gen2vdr 1.2
    Geforce 5200fx
    Soundkarte ultron octo-sound 7.1
    256 mbram
    TVkarte skystar 2
    LCD Samsung KS0107 / KS0108 Standard-Controller (CFAG12864B-TMI-V)

    4 Mal editiert, zuletzt von Rumkugel ()

  • Dein Code funst auch keine Frage. eine Fehlermeldung gibt es nicht.


    Ich muß allerdings die eingabe über die Tastatur vornehmen und er gibt mir den Text auf dem Monitor aus. Das will ich ja nicht ich will eine Datei 1 angeben aus der er sich den Text holt und dann in eine Datei 2 schreibt.


    Ich verwende Das Programm Dev-C++ 4.9.9.2
    Zum Ausführen gehe ich auf
    Kompilieren + Ausführen


    mfg

    Pc 1
    tod


    Pc 2
    Cpu 1GHz
    Betriebssystem gen2vdr 1.2
    Geforce 5200fx
    Soundkarte ultron octo-sound 7.1
    256 mbram
    TVkarte skystar 2
    LCD Samsung KS0107 / KS0108 Standard-Controller (CFAG12864B-TMI-V)

    Einmal editiert, zuletzt von Rumkugel ()

  • Hi!


    Also Du hast den Quellcode übersetzt und dann ein ausführbares Programm erhalten. Nennen wir es mal test.exe. Dieses rufst Du nun aus (Pfade ggf. anpassen):

    Code
    test.exe <eingabedatei >ausgabedatei


    Und schon sollten eingabedatei und ausgabedatei den gleichen Inhalt haben.


    Welchen C++-Compiler und welchen Befehlzeileninterpreter (cmd.exe?) nutzt Du?
    Windows, richtig?


    Gruß,
    Andreas

  • Danke hat funktioniert


    Zu dem Compiler kann ich nicht viel sagen da ich mich nicht so wirklich auskenne
    der war schon bei dem Programm dabei.
    Ich habe irgendwas von Mingw Compiler gelesen aber ob das stimmt kann ich nicht sagen.


    mfg

    Pc 1
    tod


    Pc 2
    Cpu 1GHz
    Betriebssystem gen2vdr 1.2
    Geforce 5200fx
    Soundkarte ultron octo-sound 7.1
    256 mbram
    TVkarte skystar 2
    LCD Samsung KS0107 / KS0108 Standard-Controller (CFAG12864B-TMI-V)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!