我有一个程序应该从用户那里获得输入,直到它收到[12.32, 23.45, 56.51]
。
EOF
或空格被视为合法字符,
但是控制台同时将\n
和^z
都识别为^d
,程序会继续运行直到手动停止。
试过两个:
EOF
和
while (currChar != EOF)
{
scanf("%c", &currChar);
}
答案 0 :(得分:3)
scanf()
在到达输入结尾时未将变量设置为EOF
,返回 EOF
。所以你必须测试函数的值。
while (scanf("%c", &currChar) != EOF) {
...
}
答案 1 :(得分:0)
嗯,EOF
不是一个角色。它是一个整数常量,其值为-1
。如果您输入的值为EOF
,则您的char
变量将只读取-
值-1
(减号)。这就是为什么循环不会停止,它们永远不会平等。