繁体   English   中英

“C编程语言”的基本示例代码不能像预期的那样工作吗?

[英]Very basic example code of “The C Programming Language” doesn't work like expected?

我是一名经验丰富的Java开发人员,在我的计算机科学研究中学习C语言有很多问题。 我尝试了许多人似乎推荐的“C编程语言”一书。

但是我遇到了像EOF这样最简单的东西与getchar()相结合的问题。 这是代码:

#include<stdio.h>
main()
{
    int i = 0;
    while (getchar() != EOF)
    {
        ++i;
        printf("Count of characters is %d", i);
    }
}

我正在使用Mac OS X Lion并使用带有“./a.out”的“cc”命令在终端中运行,就像书中描述的那样运行文件。 而我得到的是:

  • 总是过多计算一个角色
  • while循环永远不会结束! 它只是在输入结束后等待另一个输入...

我真的不知道可能是什么问题。 有人可以帮忙吗?

总是过多计算一个角色

这可能是换行符(输入/返回)。

while循环永远不会结束! 它只是在到达输入结束后等待另一个输入

您可能没有发出输入结束信号。 您应该使用CTRL-D来执行此操作。

当您键入一个字符,例如“6”并单击enter(等于\\ n)时,将发送命令“6 \\ n”,因此它是2个字符。 如果你只按Enter键,那么'i'将增加1。

EOF表示文件结尾,相当于ctrld + D. 如果您阅读文本文件,它会很有用。 否则它就像说“永远”一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM