读书人

哪位高人指点一下!该如何解决

发布时间: 2012-02-14 19:19:19 作者: rapoo

哪位高人指点一下!
先看看c程序和输出:

程序:

#include <stdio.h>
/* 统计输入的字符数;第1个版本*/
main ( )
{
long nc;
nc = 0;
while ( getchar ( ) != EOF ){
++nc;
printf( "%ld\n ", nc);}
}

-----------------------------
输出结果(测试)

用键盘输入:

D(回车)

屏幕输出:

1
2
---------------------------------

我本想的是只出现1,为什么会出现个2呢。那位大侠帮忙解释下!~貌似很白痴的问题,嘿嘿!~~



[解决办法]
因为 一个是D 一个是回车
都被记录了
[解决办法]
这样就好了
#include <stdio.h>
/* 统计输入的字符数;第1个版本*/
main ( )
{
long nc;
nc = 0;
char c;
while ( (c = getchar ( )) != EOF ){
if(c != ' ' && c != '\n ')
++nc;
printf( "%ld\n ", nc);
getchar();
}
}

[解决办法]
回车也是字符
while ( getchar ( ) != '\n ' )

[解决办法]
while ((c=getchar())!= '\n ')
改成这样,遇到回车键停止

读书人网 >C语言

热点推荐