C中的字符计数在输入字符后不会返回任何值

标签 c

我的代码没有返回任何值。谁能帮我解释一下为什么它不起作用?

#include<stdio.h>

int main()
{
    int nc;
    nc = 0;
    while (getchar() != EOF)
        ++nc;
    printf("%1d\n", nc);
}

最佳答案

您必须输入EOF才能跳出循环。

Windows:Ctrl+Z

Linux:Ctrl+D

参见C : How to simulate an EOF?

只有在getchar()返回EOF之后才会打印nc的值。

并且 %1d 实际上与 %d 相同,因为数字至少有一位数字。

如果您执行 %10d 或其他操作,则会打印出数字,并占据 10 位数字所占据的空间。默认对齐方式是右对齐。 您可以使其左对齐 %-10d

关于C中的字符计数在输入字符后不会返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48415527/

相关文章:

c - 开关盒中的枚举

c++ - 为什么 Vulkan 的 VkBool32 实现为 unsigned int?

c++ - 从外部 C 结构继承时初始化成员

c - 如何使用GCC的pure属性?

c - 函数原型(prototype)声明编译失败

c - 使用 realloc 时获取(核心转储)

c - GCC 中 C 程序出现链接错误

c - 找到不重复的号码

c - IAR 嵌入式 IDE - 更改板支持

c - 如何找到由以下关系定义的级数和 T(n+2) = (Tn+1)^2 + T(n) where T(0)=0 and T(1)=1 in C language