C 编程语言 ansi c 版行计数器

问题描述 投票:0回答:1

我从 Kernighan 和 Ritchie 的书中找到了以下代码:

#include <stdio.h>

int main() {
    int c, nl;
    nl = 0;
    while((c = getchar()) != EOF)
        if (c == '\n')
            ++nl;
    printf("%d\n", nl);
return 0;
}

我了解它是如何工作的以及理论上它应该做什么。我不明白的是,现实中发生了什么。

当我运行程序(在 Windows 上)并编写一些由两行组成的文本时,然后按 ctrl z,程序会完全自行关闭。我不明白它应该在哪里或如何向我显示我的文本包含的行。

我很乐意获得一些帮助或解释。

提前谢谢您!

我希望程序能够显示文本的行数。事实上,它只是自行关闭。

c line kernighan-and-ritchie
1个回答
0
投票

Windows(以及 Linux 和其他)命令行中的 Ctl-z 会暂停进程。您真正想做的是使用 Ctl-d 发出文件结束信号。请注意,如果在上述程序未运行时按 Ctl-d,您可能会向命令行发出文件结束信号,并且它可能会关闭(当我不注意时,在 Linux 上就会发生这种情况)。

© www.soinside.com 2019 - 2024. All rights reserved.