Technician Geschrieben 12. Juni 2002 Teilen Geschrieben 12. Juni 2002 Hallo, ich bin's nochmal... weil's mir mit der sstream-Headerdatei und den Problemen, die's dadurch gab (siehe letztes Posting) echt irgendwann zu blöd wurde und ich keine Lust hatte, mein Programm nochmal ziemlich komplett umzubauen - wer hätte geahnt, dass das so "tiefgreifend" ist?! - hab ich mich für folgendes entschieden: #include <iostream> #include <conio.h> #include <fstream.h> void main() { ofstream datei; datei.open("D:\\text.dat",ios::out|ios::nocreate|ios::binary, filebuf::sh_write); char ReadNow = 'a'; cout<<"eingabe:"<<endl; while ( ( ReadNow = getch() ) && ( ReadNow != '\r' ) ) { datei<<ReadNow; } datei.close(); }; und hinterher greif ich eben direkt auf die Datei zu (ohne Umweg über sstream bzw. string vorher und hinterher). Eigentlich anders als geplant, aber so komm ich auch ans Ziel. Nun ist es natürlich noch etwas unschön, dass der Benutzer nicht sieht, was er eintippt (die Zeichen werden zwar in die Datei gelesen, aber während des Tippens nicht auf dem Bildschirm dargestellt). Das ist sicherlich nur eine kleine Änderung - aber wo liegt mein Fehler? :confused: Vielen Dank für eure Hilfe! Grüße, Technician P.S.: Hab einen neuen Thread aufgemacht, weil's mit dem anderen eigentlich nix mehr zu tun hat. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hoppo Geschrieben 12. Juni 2002 Teilen Geschrieben 12. Juni 2002 Jo mann is doch klar... getch() liest nur ein zeichen von der Tastatur und zeigt es nicht an. Also musst du das eingegebene Zeichen auch ausgeben lassen: //////////////////////////////////// #include <iostream> #include <conio.h> #include <fstream.h> void main() { ofstream datei; datei.open("D:\\text.dat",ios::out|ios::nocreate|ios::binary, filebuf::sh_write); char ReadNow = 'a'; cout<<"eingabe:"<<endl; while ( ( ReadNow = getch() ) && ( ReadNow != '\r' ) ) { printf("%c", ReadNow); datei<<ReadNow; } datei.close(); }; ///////////////////////////////////////// Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 12. Juni 2002 Teilen Geschrieben 12. Juni 2002 Original geschrieben von Hoppo printf("%c", ReadNow); datei<<ReadNow;Man sollte aber stdio und iostream nicht mischen, deshalb besser: cout<<ReadNow; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Technician Geschrieben 12. Juni 2002 Autor Teilen Geschrieben 12. Juni 2002 @Klotzkopp Danke!:) ich hatte schon ähnliches ausprobiert, aber damit nur ein "Datengewurschtele" erzielt. weiß auch nicht, hatte ich wohl mir irgendwas falsch gemerkt - dachte doch tatsächlich, getch würde das eingegebene auch anzeigen... Technician Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 12. Juni 2002 Teilen Geschrieben 12. Juni 2002 Bedank Dich bei Hoppo, ich hab doch wieder nur rumgemäkelt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Technician Geschrieben 12. Juni 2002 Autor Teilen Geschrieben 12. Juni 2002 Original geschrieben von Klotzkopp Bedank Dich bei Hoppo, ich hab doch wieder nur rumgemäkelt hättest es aber wohl auch gewusst Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DocMabuse Geschrieben 12. Juni 2002 Teilen Geschrieben 12. Juni 2002 Hi, wie wäre es, wenn Du anstatt "getch()" einfach "getche()" benutzt. Das "e" steht, glaube ich, für "echo" und gibt das Zeichen, welches eingegeben wird gleichzeitig auf dem Bildschirm aus. Grüsse DocMabuse Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Technician Geschrieben 12. Juni 2002 Autor Teilen Geschrieben 12. Juni 2002 Original geschrieben von DocMabuse Hi, wie wäre es, wenn Du anstatt "getch()" einfach "getche()" benutzt. Das "e" steht, glaube ich, für "echo" und gibt das Zeichen, welches eingegeben wird gleichzeitig auf dem Bildschirm aus. Grüsse DocMabuse Ja... vielleicht war's ja das, was ich noch irgendwie von ferne und verschwommen in Erinnerung hatte... Wenn das so geht, ist es natürlich besser als getch()! Gruß, Technician Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Woodstock Geschrieben 12. Juni 2002 Teilen Geschrieben 12. Juni 2002 Mit getche() erschient aber nicht der Inhalt der Variablen in der Du die EIngabe gespeichert hast, sonder nur das was Du bei 'cin >>' auch auf dem Bildschirm sehen würdest, nämlich was eingegeben wird, nicht wurde! Bine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DocMabuse Geschrieben 12. Juni 2002 Teilen Geschrieben 12. Juni 2002 Original geschrieben von Woodstock Mit getche() erschient aber nicht der Inhalt der Variablen in der Du die EIngabe gespeichert hast, sonder nur das was Du bei 'cin >>' auch auf dem Bildschirm sehen würdest, nämlich was eingegeben wird, nicht wurde! Bine Korrekt, es wird immer das Zeichen angezeigt und gespeichert, welches gerade in dem Moment eingegeben wurde. So wie ich das sehe wird aber auch in eine Variable vom Typ "char" gespeichert, welche sowieso nur ein Zeichen aufnehmen kann. Sehe ich das falsch? DocMabuse Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Woodstock Geschrieben 12. Juni 2002 Teilen Geschrieben 12. Juni 2002 Hmm, eigentlich wird das ganze in einem integer gespeichert! Bine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DocMabuse Geschrieben 12. Juni 2002 Teilen Geschrieben 12. Juni 2002 :confused: Wie jetzt? :confused: Also die folgende Zeile... char ReadNow = 'a'; ...sieht für mich verdammt nach 'ner Variable vom Typ "char" aus, oder nicht? Sollte ich mich bisher immer geirrt haben? Fällt mein Weltbild tatsächlich in sich zusammen?! :eek: Bitte um Aufklärung! Kann ja sein, dass ich mal wieder auf der Leitung stehe... DocMabuse Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Technician Geschrieben 13. Juni 2002 Autor Teilen Geschrieben 13. Juni 2002 Original geschrieben von Daragon Aber erklär erstmal was du vorhast, aber bitte keinen Source, sondern bitte erklären, ich denke dann können wir dir besser weiter helfen!!! Danke - funktioniert jetzt alles prima! getche() hat nicht das gebracht was ich wollte (soll heißen, nach dem ENTER war die Eingabe wieder vom Bildschirm weg) - also mach ich das ganze jetzt mit getch() und geb dann zeichenweise wieder aus. (Mein ursprüngliches Problem war, einen beliebig langen Text von Tastatur einzulesen und das dann in einer Textdatei oder einer Variablen abzulegen.) Aber wie gesagt, jetzt funktionierts (und der Thread kann, meinetwegen, auch zugemacht werden). Danke nochmal für eure Mühe! Gruß, Technician Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.