C++ 为什么';同时使用EOF和'\0';在这一行代码中?
请原谅我的英语不好,我正在用第4章第4.1节的“C编程语言,第二版”练习C。有一个模式搜索代码(UNIX程序grep) 有一行代码我不太懂C++ 为什么';同时使用EOF和'\0';在这一行代码中?,c++,c,eof,C++,C,Eof,请原谅我的英语不好,我正在用第4章第4.1节的“C编程语言,第二版”练习C。有一个模式搜索代码(UNIX程序grep) 有一行代码我不太懂 while (--lim > 0 && (c = getchar()) != EOF && c != '\0') 让我困惑的是EOF和'\0'不是一回事吗?使用其中一个是不够的 谢谢您的时间。EOF与'\0' EOF是文件的结尾 '\0'是字符串终止符。EOF与'\0'不同 EOF是文件的结尾 “\0”是字符串终止符。
while (--lim > 0 && (c = getchar()) != EOF && c != '\0')
让我困惑的是EOF
和'\0'
不是一回事吗?使用其中一个是不够的
谢谢您的时间。
EOF
与'\0'
EOF
是文件的结尾
'\0'
是字符串终止符。EOF
与'\0'
不同
EOF
是文件的结尾
“\0”
是字符串终止符。
等于'\0'
0
等于EOF
李>-1
-1!=0
-->EOF!='\0'
等于'\0'
0
等于EOF
李>-1
-1!=0
-->EOF!='\0'
EOF与'\0'不一样您确定它说的是'\0'
而不是'\n'
<代码>'\0'不是您希望从标准输入中读取的字符。@hvd事实上您是对的,我错误地向Visual Studio输入了内容,谢谢您的评论。您应该先查找EOF和任何宏/定义asking@Damon:标准输入可以来自任何地方,而不一定来自键盘。如果它正在从文件中读取,那么给它一个\0
.EOF与“\0”不一样。您确定它说的是'\0'
而不是'\n'
<代码>'\0'不是您希望从标准输入中读取的字符。@hvd事实上您是对的,我错误地向Visual Studio输入了内容,谢谢您的评论。您应该先查找EOF和任何宏/定义asking@Damon:标准输入可以来自任何地方,而不一定来自键盘。如果它是从文件中读取的,那么给它一个\0
就很简单了。