我遇到了k& r 1.5.3的问题。显然我是一个完全的初学者。下面是完全来自本书的代码,正如我输入的那样。它编译得很好并且运行。它返回字符,但从不打印行数。我正在使用ssh进入Ubuntu机器。我妻子的Mac上的钥匙可以解释为'\ n'吗?
#include <stdio.h>
/*count lines in input*/
main()
{
int c, n1;
n1 = 0;
while ((c = getchar()) != EOF)
if (c == '\n')
++n1;
printf("%d\n", n1);
}
答案 0 :(得分:5)
正确。 Mac使用\r
作为行结尾:http://en.wikipedia.org/wiki/Newline
像这样更新你的代码:
#include <stdio.h>
/*count lines in input*/
main()
{
int c, n1;
n1 = 0;
while ((c = getchar()) != EOF)
if (c == '\r') /* use \r for Macs */
++n1;
printf("%d\n", n1);
}
<强>然而强>
当我尝试这样做时,我必须Ctrl-D
输入EOF
并触发程序以打印行数。