【发布时间】:2016-10-22 00:36:50
【问题描述】:
我刚学c,我用的是Linux终端。我编写了以下简单代码,但是当我输入输入时,文件不会退出,因此不计算字符数。任何人都可以帮我吗?我也尝试过其他输入代码。我所有的输入相关代码都是一样的。我究竟做错了什么?请帮忙。
main()
{
/* count characters in input */
printf("Type some characters and the program will count the number of characters: ");
int c = getchar();
while(c!=EOF && c!= '\n')
++c;
printf("Number of characters typed: %1d\n", c);
}
【问题讨论】:
-
您只能读取一个字符,因为您只调用一次
getchar。只要不遇到EOF(或\n或任何你的停止条件,可能是while ((c=getchar()) != EOF)? -
这个 getchar() 函数是什么?获取输入的方式通常是通过 scanf("%s", buffer) 获取输入并将其复制到变量 buffer
-
@Yvain
getchar是 stdio.h 中定义的标准函数;如果 OP 想通过 char scanf("%s") 读取 char 是不合适的。 -
您还使用与输入字符相同的变量来计算字符数。这怎么可能行得通?
-
感谢您指出愚蠢的错误@Barmar。我快疯了!毕竟是周五晚上!更新代码:#include
main() { int c; printf("请输入一些字符:"); while(getchar()!=EOF && getchar()!= '\n') ++c; printf("输入的总字符数= %1d \n", c); }