R和K,charcount(1.5.2)未给出正确的结果
我正在阅读C编程语言书,R和K我想它被称为 我在Ubuntu中完成所有这些,甚至直接从文件中复制和粘贴示例都不起作用 这就是这本书的内容R和K,charcount(1.5.2)未给出正确的结果,c,C,我正在阅读C编程语言书,R和K我想它被称为 我在Ubuntu中完成所有这些,甚至直接从文件中复制和粘贴示例都不起作用 这就是这本书的内容 #include <stdio.h> /* count characters in input; 1st version */ main() { long nc; nc = 0; while (getchar() != EOF) ++nc; printf("%ld\n", nc); } #
#include <stdio.h>
/* count characters in input; 1st version */
main() {
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
#包括
/*计算输入中的字符数;第一版*/
main(){
长nc;
nc=0;
while(getchar()!=EOF)
++数控;
printf(“%ld\n”,nc);
}
它的意思是读入一行输入,告诉你它有多少个字符
然而,在我点击回车键之后,我就有了一个新行要输入
在另一个问题中,我看到ctrl+d会创建一个EOF,所以我尝试了,但这给了我一个错误的数字(例如,qwerty得到7)
我做错了什么/Ubuntu有没有改变这一点的功能
谢谢你搞错了,这个程序并不意味着读入一行输入,并告诉你它有多少个字符。它旨在计算整个输入中的字符数,以便将换行字符计数为
只有当它看到输入中出现EOF字符时才会停止。似乎没问题,当按ctrl+d时会发生什么情况?它会打印一个数字,比预期的数字多1。我认为这是把换行符算作一个字符。事实上,换行符就是一个字符。好吧,但在上一个,它把你放进去的东西,为什么把换行符算作一个EOF字符?”c=getchar();while(c!=EOF){putchar(c);c=getchar()代码对我来说很好。如果你不想写新行,试着写点什么,然后按两次
Ctrl+d
。它会在同一行上打印字符数。你能试试吗?在上一行putchar getchar等
中,它不将换行计算为EOF。你可以在按enter键后继续键入。结果是输出字符在getchar
输出一个换行符之前,actors会一直处于缓冲状态。@Franknsten如果答案解决了您的问题,请接受它。