记录自己遇到的一些问题,也希望能对别人有一点点的帮助吧
#include<stdio.h>
#include<stdlib.h>
int main(){
int i,sum=0;
char ch;
printf("请输入任意数字和空格:");
while(scanf("%d",&i)==1){ //scanf返回的是输入的数据的个数,每次读入一个,读入成功则==1,继续执行while循环内语句。
//scanf对于数据的输入,例如%d,可自动忽略若干个数据中的空白符
printf("i=%d\n",i); //此句显示读入的数据 ,验证正确性
sum+=i;
printf("sum:%d\n",sum);
while((ch=getchar())==' ') printf("捕获空格and %c",ch); //用于操作最后一个数据之后的空白符,并识别终止符“\n”
//若不操作空白符,直接获取终止符,则会陷入死循环
if(ch=='\n')
{
printf("ch:%c",ch);
break;
}
ungetc(ch,stdin); //将while读入的一个数字放回到缓冲区,否则下一个i就只会读到一个数字的后半部分,导致结果错误
}
printf("%d\n",sum);
return 0;
}