注意下判断语句,其实是在拿scanf的返回值在和EOF或\n比较。
scanf的返回值类型为int,值由后面的参数决定,返回值表示成功读入的数据的个数。
如:scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2。
如果只有a被成功读入,返回值为1。
如果a和b都未被成功读入,返回值为0。
如果遇到错误或遇到end of file,返回值为EOF。
注意事项
scanf 的各种格式中,%d、%c、%s三种最常用,通常都是以回车作为一次输入的结束。由于对字符解析方式及字符特点不同(如数字中一般不会出现空格回车等特殊字符)不同,%d格式一般不会在连续输入时,遇到问题。而%s和%c却会出现各种各样的问题,比如回车问题,空格问题等。橘段
scanf()函数返回的值为:正确好禅按指定格式输入变量的个数;也即能正确接收到值的变量个数。在类型匹配错误的时候,以非正常的方式退出。可以利用scanf函数的返回值判断输入是否正确,并进行流程控制:
int i = 0; char c1[15]; while((scanf("%c", &c1[i])!=EOF) && i<14)
{
i++;
}
#include
int main(){
inti;
charj;
scanf("%d",&i);
scanf("%c",&j);
printf("%d%c\n",i,j);
return0;
}
扩展资料
C语言fgets,gets,scanf对于输入完毕后的回车符的处理
1、注意fgets函数的第二个参数n,胡搜是包括结束符在内的总字数,实际强制性从键盘只能读入n-1个字符。
2、strlen函数遇结束符就会停止,返回结束符之前的字符数。
3、在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串,但是读粗做侍取字符串时读到空格为止,因此只能读取一个单词,而不是整行字符串。而使用fgets可以读岩吵取一个字符串,空白符都会被当成输入。
C语言中,scanf是格式化输入的函咐答数。在大多数的格式字符处理衡友慧时,scanf会忽略回车。要读取回车,只有使用%c的格式。
%c格式,对应变量为char型,功能为读取一个字符,并存入到对告茄应的字符型变量中。
比如,循环读取字符,直到遇到回车结束,可以写作
char c;
while(1)
{
scanf("%c",&c);
if(c == '\n') break;//读取到换行符,即回车,退出循环。
}
注意下判断语句,其实你是在拿scanf的返回值在和EOF或慎银扮\n比较!!
scanf的返回值类型为int,值由后面的参搏橘数决定,返回值表示成功读宽灶入的数据的个数
如:scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
scanf读取孙饥回车?
char c;
scanf("%c"银凯轿,&c);
if(c=='\n')printf("锋肆Yes")