【问题标题】:Count characters in input [duplicate]计算输入中的字符[重复]
【发布时间】:2014-05-24 12:59:08
【问题描述】:

我正在尝试像这样输出输入中的字符数:

#include <stdio.h>

/* count characters in input; 1st version */
main(){
    long nc;

    nc = 0;
    while (getchar() != EOF)
        ++nc;

    printf("%ld\n",nc);
}

但它不输出任何东西。怎么了?

【问题讨论】:

  • 输入EOF(crtl+D or ctrl+Z(windows))。
  • 我以为是输入这就是原因。谢谢!
  • 只是一个友好的建议——使用明确的主声明,因为它是标准中唯一有效的符号:int main(void) {/*...*/ return 0;}

标签: c


【解决方案1】:

这是因为您没有输入任何内容。 EOF 并不意味着没有可用的字符; getchar() 只是等待输入。 EOF 意味着你有它 CTRL+Z 或 CTRL+D。

【讨论】:

    【解决方案2】:

    Someone asked the same question here 它应该回答你的问题,很多人很好的解释

    来源总结和我的回答:
    EOF 表示“文件结束”。使用 CTRL-D(unix 风格系统)或 CTRL-Z(Windows),循环将终止

    【讨论】:

      【解决方案3】:

      试试这个版本:

      #include <stdio.h>
      
      int main(void)
      {
        long nc = 0;
      
        do
        {
          printf("%ld chars read so far, hit any key or Ctrl-D/Ctrl-Z to end.\n", nc);
          ++nc;
        } while (getchar() != EOF)
      
        printf("total number of chars entered: %ld\n", nc);  
      }
      

      【讨论】:

        猜你喜欢
        • 2011-05-03
        • 1970-01-01
        • 2012-06-07
        • 2012-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-09
        • 1970-01-01
        相关资源
        最近更新 更多