Programm nach der Baukastenphilosophie schreiben?
-
Ich wollte mal wissen, wie eigentlich Programme wie cat oder jedes andere das der "Baukastenphilosophie" entspricht, ihre Eingabe empfangen.
Das funkioniert doch so, dass jedes solche Programm von der Standardeingabe liest und in die Standardausgabe schreibt.
Schreiben tut man doch einfach mit printf(), aber wie empfängt man Eingaben von der Standardeingabe? Ich glaub ich stell mich grad arg doof an, was?
-
Philosoph schrieb:
Das funkioniert doch so, dass jedes solche Programm von der Standardeingabe liest und in die Standardausgabe schreibt.
ja
Schreiben tut man doch einfach mit printf(), aber wie empfängt man Eingaben von der Standardeingabe? Ich glaub ich stell mich grad arg doof an, was?
scanf, gets, cin... standard-input-funktionen
-
Hmm, aber so gibt es nur eine mögliche Eingabe für das Programm, oder?
echo beispiel | meinprogramm
-
was meinst du?
-
Ich kann ja dann nur einen Datenstrom im Programm empfangen:
cin >> username
cin >> dirname
geht ja nicht?
-
doch klar geht das
stell dir vor du ließt aus einer Datei.. nur statt ifstream in nimmste halt cin
-
Aber es gibt ja nur eine Standardeingabe und somit nur eine Datei.
Also wenn ich cin >> username drin stehen habe, dann nimm ich damit ja die gesamte Ausgabe des anderen Programmes auf (ich gehe jetzt noch von einer gesetzten Pipe aus)
-
Pilosoph schrieb:
Aber es gibt ja nur eine Standardeingabe und somit nur eine Datei.
Genau. Du musst wissen, wie du eine Datei liest. Z.B. mit C++.
Also wenn ich cin >> username drin stehen habe, dann nimm ich damit ja die gesamte Ausgabe des anderen Programmes auf (ich gehe jetzt noch von einer gesetzten Pipe aus)
nein, istream >> variable liest nicht die gesamte Datei ein.
int x; cin >> x; liest zB. nur die nächste Zahl ein. string x; getline(cin, x); liest eine Zeile. Usw.
-
Hmm, ich glaub, jetzt hab ichs verstanden, danke!