char c;
while (read(0, &c, 1))
{
if(c == '\n')
break;
}
这是我程序的一部分,我认为当我输入Enter时应该将其退出。
但是它不起作用。
Simillarly,
int line = 3;
char c;
while (read(0, &c, 1))
{
line--;
if (line == 0)
break ;
}
此代码也不起作用。为什么?以及我该如何解决?
尽管您未在问题中指定,但我怀疑您已将c
定义为int
变量。这意味着它可能包含四个字节。您的read()
语句仅更改这些值之一。
也许可以将c
声明为char
,但是您将无法检测到EOF的返回值。所以也许改用getchar()
?
如果到达文件末尾,则read()
的返回值将为零;如果发生其他错误,则为-1。要将后者与'\xFF'
区分开,可以检查全局变量errno
的值。不过,使用getchar()
会更有意义。