[求助]一个循环问题
#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
----------------解决方案--------------------------------------------------------
k=getchar())!=EOF
第一个字符被存到这里面了.当然无效
----------------解决方案--------------------------------------------------------
以下是引用oclassic在2007-4-22 14:03:53的发言:
k=getchar())!=EOF
第一个字符被存到这里面了.当然无效
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 */
----------------解决方案--------------------------------------------------------