【问题标题】:Completing user input in C用 C 完成用户输入
【发布时间】:2020-05-21 05:52:37
【问题描述】:

我正在学习 C,如果这是一个初级问题,请原谅我......

我有一个来自 C 编程语言书的小程序,它读取用户输入并尝试计算新行的数量'\n'

输入输入时,回车键会添加一个新行(我相信这是我们的意图,因为我们正在计算换行符)。

#include <stdio.h>

int main()
{
    int c, nl;

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

如何“完成”输入?我似乎无法点击 printf 语句来输出换行符的数量。

【问题讨论】:

  • 您需要提供操作系统特定的“文件结尾”输入。对于 POSIX 系统(如 Linux 或 macOS),它是 Ctrl-D。在 Windows 上是 Ctrl-Z(可能需要在新的空行上按下)。
  • 啊,就是这样,谢谢:-)

标签: c


【解决方案1】:

您应该在输出中提供 End-Of-Transmission 字符 (U+0004)。你可以这样做:

#include <stdio.h>

int main()
{
    int c, nl;

    nl = 0;
    while ((c = getchar()) != EOF) 
        if (c == '\n')
            ++nl;
    printf("%1d%c", nl, 4);
}

关于 EOT char 的更多信息可以找到here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    • 2014-01-25
    • 1970-01-01
    相关资源
    最近更新 更多