newline\n in Konsole bewirken



  • hallo
    ich lerne gerade Ansi-C programmieren unter Linux. Ich bin auf ihre Hilfe angewiesen.
    ich habe den folgenden Code :

    #include <stdio.h> 
    #include <stdlib.h> 
    #define MAX 200 
    
    int main(void) { 
       char txt[MAX]; 
    
       printf("Bitte geben Sie Ihren Text ein : "); 
       fgets(txt, MAX, stdin); 
       printf("%s",txt); 
       return EXIT_SUCCESS; 
    }
    

    es funzt einwandfrei.Aber beim Schreiben vom Text habe das Pb., wenn ich auf ENTER drücke dann wird das Programm ausgeführt bzw ausgegeben. Ja es ist so prog_.
    Meine Frage lautet: wie kann ich in meinem Text in der Konsole auch kurze Zeilen eingebe also nicht bis das automatisch gemacht wird. d.h. wie kann ich ein "newline" eingebe ohne auf ENTER zu drücken damit da programm nicht ausgeführt wird und natürlich auch so gespeichert wie eingegeben hätte.
    ich hoffe das ich verständlich ausgedruckt habe
    vielen vielen DANK



  • ich hoffe das ich verständlich ausgedruckt habe

    nee, überhaupt nicht. Willst du mehrere Zeilen einlesen, oder was meinst du?



  • vielen DANK für die Antwort.
    ja ich will am stück mehrere zeilen einlesen.



  • Dazu hat uns der liebe Gott Schleifen geschenkt. for, while, do while, usw...



  • man kann von der Tastatur so lesen, wie von einer Datei.

    for(int c; (c=getchar()) != EOF; ) printf("%c", c);

    Die Eingabe lässt sich dann mit Strg+D beenden.



  • bin mir nicht ganz sicher, ob c99 schon variablendefinitionen in schleifenkoepfen erlaubt...
    mit nem putchar() gehts eventuell schneller als mit formatstringwuseleien.
    *oberlehrersei*

    int c; while ((c = getchar()) != EOF) putchar(c);



  • c.rackwitz schrieb:

    bin mir nicht ganz sicher, ob c99 schon variablendefinitionen in schleifenkoepfen erlaubt...

    Tut es.


Anmelden zum Antworten