scanf()函数、ungetc( ch,stdin );语句的使用`
#include<stdio.h>
#include <stdlib.h>
//using namespace std
void main()
{
int i;
int sum =0;
char ch ;
printf("请输入一串整数和任意数目的空格:");
while( scanf("%d",&i)==1) //scanf返回的是输入的数据的个数,每次读入一个,读入成功则==1
//scanf对于数据的输入,例如%d,可自动忽略若干个数居中的空格
{
printf("i=%d\n",i);//此句显示输入的数据,验证正确性
sum+=i;
printf("sum=%d\n",sum);
while( (ch=getchar()) == ' ')//getchar()函数获取一个字符用于操作。
//最后一个数据之后的空白符,并识别终止符“\n”
//若不操作空格符,直接获取终止符,则会陷入死循环
printf("捕获空格 and %c\n",ch);
printf("%c\n",ch);
if( ch == '\n')
{
printf("ch:%c\n",ch);
break;
}
ungetc( ch,stdin );//将ch获取读入的一个数字放回到缓冲区,否则下一个i就只会读到一个数字的后半部分,导致结果错误
}
printf("结果是:%d",sum);
printf("\n");
system("pause");
}
学习小甲鱼c++课程的一些笔记,**注释很重要**