read () ze stdin nie ignoruje nowej linii

Używam następującej instrukcji warunkowej do odczytu ze standardowego wejścia.

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

Podczas wprowadzania danych ze standardowego wejścia użytkownik zazwyczaj naciska enter po zakończeniu. Aleread() uważa, że ​​„n” jest również wejściemn = 1 a warunek nie jest fałszywy. Czy istnieje sposób na sprawienie, aby warunkowe wartości były fałszywe, gdy użytkownik naciśnie enter (bez wpisywania czegokolwiek) na standardowym wejściu, oprócz sprawdzania zawartości buf. Czy istnieje inna funkcja niżread() które mogę wykorzystać do tego celu?

W tym przypadku, co może być sposobem na odczyt, aby określić koniec wejścia, gdy wejście pochodzi ze standardowego wejścia (stdin)?

questionAnswers(5)

yourAnswerToTheQuestion