当前位置: 代码迷 >> C语言 >> [求助]一个循环问题
  详细解决方案

[求助]一个循环问题

热度:161   发布时间:2007-04-22 13:40:34.0
[求助]一个循环问题
#include"stdio.h"
main()
{
int i,j,k,h;
while((k=getchar())!=EOF)
{
scanf("%d%d",&i,&j);
h=i+j;
printf("h=%d",h);
}
}

为什么在运行这个代码时 第一个数是无效的
就是说在运行时出现这样的情况 1 回车
2 回车
3 回车车
h=5
搜索更多相关的解决方案: EOF  回车  int  

----------------解决方案--------------------------------------------------------
k=getchar())!=EOF
第一个字符被存到这里面了.当然无效
----------------解决方案--------------------------------------------------------
以下是引用oclassic在2007-4-22 14:03:53的发言:
k=getchar())!=EOF
第一个字符被存到这里面了.当然无效

那要怎么改啊? 谢谢


----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
回复:(oclassic)k=getchar())!=EOF 第一个字符被存...
同意楼上说的,第一个数字被存到K中去了

----------------解决方案--------------------------------------------------------
回复:(yjh8656)以下是引用oclassic在2007-4-22 14:...
把K定义为字符型就OK
----------------解决方案--------------------------------------------------------
EOF是一个宏为-1
while((k=getchar())!=EOF)这是一个死循环,
用getchar()得到的数据一定是>=0的不可以会等于-1
----------------解决方案--------------------------------------------------------
#include"stdio.h"
main()
{
int i,j,k,h;
while((k=getchar())!='x')
{
scanf("%d%d",&i,&j);
getchar();
h=i+j;
printf("h=%d",h);
}
}
要退出 x 回车就可以了.
要输入数据: 0 3 4 回车(3,4分别传给i,j)
----------------解决方案--------------------------------------------------------
EOF在这是ctrl+z
----------------解决方案--------------------------------------------------------
#define EOF     (-1)                    /* End of file indicator */
----------------解决方案--------------------------------------------------------
  相关解决方案