例1
#包含
main () )
{int i; int b;
scanf('%d ',I );
getchar (;
}
为什么只输入一个数字或文字就结束了?
例2
#包含
main () )
{int i; int b;
scanf('%d ',I );
scanf('%d ',b );
}
为什么输入数字不结束,输入文字就结束?
例3
#包含
main () )
{int i; int b;
scanf('%d ',I );
getch (;
}
为什么输入数字或文字不会结束?
例1
/*输入数字和字母实际上是两个字符,输入的数字getchar ) )读取下面的回车。
如果要读取在文字getchar ()中输入的文字,请尝试. */
例2
/*在输入一个数字时,第一个scanf函数读取第一个数字,第二个scanf函数等待输入。 (scanf函数跳过换行符、空格等空格操作符,无法退出。 输入字符时,第一个字符不匹配,无法从输入流中删除第一个字符,因此第二个scanf函数仍会读取字符并不再匹配,然后退出该函数。 因此,无论有多少int类型的scanf函数,都在输入字符的情况下结束
例3
/*getch (此函数按任意键结束。 不管之前输入多少,都必须输入到这里。 */
看看百度百科的说明SCANF吧
1.scanf函数的一般形式
scanf (格式控制,地址表列) )。
intscanf(char*format (,argument,);
“格式控件”的含义与printf函数相同; “地址表列”是由多个地址组成的表列,可以是变量的地址,也可以是字符串的起始地址。
scanf ()函数返回成功赋值的数据项的数量,如果发生错误,则返回EOF。
例题scanf函数输入数据。
#包含
void main () }
int a、b、c;
printf(inputa,b,c(n ) );
scanf(%d%d%d )、a、b和c );
printf(a=%d,b=%d,c=%d ',a,b,c );
}
格式字符说明
%a读取浮点值。 仅C99有效)
%A同上
%c读取字符
%d读取十进制整数
%i读取十进制、八进制和十六进制整数
读取%o8进制整数
%x读取十六进制整数
%X同上
%c读取字符
读取%s字符串
%f读取浮点数
%F同上
%e同上
%E同上
%g同上
%G同上
%p读取指针
%u读取无符号的十进制整数
%n到目前为止读取的值的等效字符数
%[]扫描字符集