read () von stdin ignoriert keine Zeilenumbrüche

Ich verwende die folgende bedingte Anweisung, um aus der Standardeingabe zu lesen.

if ((n = read(0,buf,sizeof(buf))) != 0)

Bei der Eingabe von Daten über die Standardeingabe drückt der Benutzer in der Regel die Eingabetaste, wenn Sie fertig sind. Aberread() berücksichtigt in diesem Fall auch '\ n' als Eingaben = 1 und die Bedingung wird nicht als falsch bewertet. Gibt es eine Möglichkeit, die bedingte Bewertung auf falsch zu setzen, wenn der Benutzer bei der Standardeingabe die Eingabetaste drückt (ohne etwas einzugeben), abgesehen von der Überprüfung des Inhalts von buf. Gibt es eine andere Funktion alsread() das könnte ich für diesen zweck nutzen ???

Was kann eine Möglichkeit zum Lesen sein, um das Ende der Eingabe zu bestimmen, wenn die Eingabe von der Standardeingabe (stdin) stammt?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage