Benutzereingaben von der Konsole in C

Ich bin ein absoluter Anfänger in C-Programmierung, also bitte etwas Geduld mit mir. Ich versuche zur Eingabe eines Dateinamen vom Benutzer in der Konsole, und ich will zu drucken, die eine hilfreiche Nachricht, dass der Benutzer aufgefordert wird, geben Sie den Dateinamen an, die er öffnen will. Aber wenn ich das in der Eingabeaufforderung eingeben, wird der cursor wartet auf die Eingabe der ersten und nachdem ich geben Sie text ein und drücken Sie die EINGABETASTE, sehe ich das hilfreich prompt, dass ich etwas drucken wollte, vor dem Eingang. Hier ist das code-snippet.

 char filename[40];
 fputs("enter the file name: ", stdout);
 fflush(stdout); 
 fgets(filename, sizeof(filename), stdin);

Ich kann nicht sehen, wohin ich gehe falsch mit diesem. Ich wäre wirklich dankbar, wenn jemand erklären könnte, warum dies geschieht.

Ich sehe kein Problem mit deinem code.
Um näher auf mein problem. Ich bin versucht zu konvertieren, das C-Programm in gnuarm Assembler-code. Also ich nutze den gcc-compiler aus der gnu-toolchain aus den Armen-website. Ich glaube nicht, dass es sollte egal, aber dann weiß ich nicht, wie man dieses Problem beheben. Das scheint so trivial.
Dieser C-code sieht gut aus. Es würde scheinen, wie Sie Ihre stdout nicht ordnungsgemäß geleert, obwohl Sie es beantragt. Ich würde vermuten, dass die stdio-Bibliothek hat einige Macken in dieser Hinsicht.
In dem OS? Können Sie pl. überprüfen Sie den Rückgabewert von fflush, wenn es 0 ist?
Ich habe deine code und fügte hinzu, printf("%s\n",filename); am Ende, kompiliert und lief. Es druckt den Dateinamen habe ich eingegeben. Ist es nicht dies, was Sie bekommen?

InformationsquelleAutor Vivek Pradhan | 2012-08-21

Schreibe einen Kommentar