我在我的代码中遍历来自 stdin 的十六进制输入,我注意到当达到 0xff 字节时我无法绕过我的代码停止。我知道发生这种情况是因为循环是:
while( (c=getchar()) != EOF)
但是,我不能忽略它,否则会在真正的文件结束后调用 getchar 并且它会出现段错误。如何正确遍历完整输入?
(抱歉,我知道这个看似常见的任务应该有一个简单的答案,但我尝试搜索了一段时间但一无所获)
最佳答案
您已将 c
声明为字符,但是 getchar()
返回一个 int
。 C 的正确循环结构是这样的:
int c;
while ( (c = getchar()) != EOF ) {
// use c here.
}
关于c++ - 在 C++ 中遍历可能包含 0xff 的十六进制输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10273427/