【发布时间】:2012-03-20 22:36:09
【问题描述】:
这是一个基本问题.. 但不得不问。对于这样的程序,如果用例是 123^Z,则程序不会终止,即使我在末尾放置了 EOF (Ctrl+Z)。为什么呢?只有当我在 CR 之后放置 EOF 时它才会起作用。任何答案将不胜感激。谢谢。
#include < stdio.h>
void main()
{
int i, nc;
nc = 0;
i = getchar();
while (i != EOF) {
nc = nc + 1;
i = getchar();
}
printf("Number of characters in file = %d\n", nc);
}
【问题讨论】:
-
什么平台?
^Z让我想到了 Windows,但如果你用你的平台标记这个问题会很好。谢谢。 -
如果在 EOF 之后放置 CR 会发生什么?
-
在 linux 下与
^D的行为相同。仅在换行时有效 -
简短的回答是 Windows 就是这样工作的。但是请注意,如果您按 F6 而不是 ctrl+Z,即使它在行的中间也会生效。