Ich verwende die folgende bedingte Anweisung, um von der Standardeingabe zu lesen.read() von stdin ignoriert newline
if ((n = read(0,buf,sizeof(buf))) != 0)
Wenn Daten von der Standardeingabe eingegeben, in der Regel drückt der Benutzer eingeben, wenn Sie fertig. Aber read()
berücksichtigt '\ n' als Eingabe auch in diesem Fall n = 1
und die bedingte wird nicht als falsch ausgewertet. Gibt es eine Möglichkeit, die bedingte Bewertung zu false zu machen, wenn der Benutzer die Eingabe (ohne Eingabe) auf die Standardeingabe drückt, abgesehen von der Überprüfung des Inhalts von buf. Gibt es eine andere Funktion als read()
, die ich für diesen Zweck verwenden könnte ??
Was kann eine Möglichkeit sein, das Ende der Eingabe zu bestimmen, wenn die Eingabe von der Standardeingabe (stdin) kommt?
Was wollen Sie tun? Lies jedes Zeichen einzeln? – GManNickG
Nein, wie Sie von der Bedingung sehen können, lese ich von der Standardeingabe in einen Puffer (und sage vielleicht einfach, es auf Standardausgabe zurückzuschreiben). Ich möchte anhalten, wenn der Benutzer nichts eingibt und nur Enter drückt. –
Ah, ich sehe jetzt. Ich habe es falsch gelesen. – GManNickG