ich echo "1 2\n h a\n hello" | ./a.out
möchte mich geben:c - print jede Zeile in stdin
1 2
h a
hello
Hier ist meine aktuellen Code ist, der den gesamten Eingangs 1 2\n h a\n hello
auf eine Zeile druckt:
#include <stdio.h>
#include <string.h>
int main (void)
{
char buffer[256];
while (fgets(buffer, sizeof(buffer), stdin)) {
printf("%s",buffer);
}
}
kann jemand helfen Ich mit diesem Problem?
Dann sollte die Eingabe '1 2 \ n h a \ n hallo' sein. Konvertieren Sie den String '\ n' selbst in Newline. – MikeCAT
Beachten Sie, dass am Anfang der zweiten und dritten Zeile ein Leerzeichen angezeigt wird, weil Sie nach dem Zeilenumbruch in der gechlossenen Zeichenfolge ein Leerzeichen eingefügt haben - nachdem Sie die Daten mit '\ n' zu a erweitert haben Neue Zeile. Sie könnten 'printf% s \ n" "1 2" "h a" "hallo" | verwenden a.out' als weitere Möglichkeit, das gewünschte Ergebnis zu erzielen. (Beachten Sie auch, dass Sie viel von Ihrem eigenen Debugging tun können, indem Sie einfach die Ausgabe von 'echo" 1 2 \ nha \ n hallo "' beobachten, ohne es an Ihr Programm zu übergeben. Eine Standard-Debugging-Technik besteht darin, sicherzustellen, dass Ihr Programm es sieht die Daten, die Sie erwarten, dass sie sehen.) –