[求助]一个关于scanf的问题,请大家帮我讲解
scanf("%c%c%c",&a,&b,&c);
输入def
是把'd' 赋于a,'e' 赋于b,'f' 赋于c ------------>明白!!
输入d e f
为什么是把'd' 赋于a,'f' 赋于b,'e' 赋于c ------------>不明白!!!
请大家给我讲讲为什么!
scanf("%c%c%c",&a,&b,&c);
输入def
是把'd' 赋于a,'e' 赋于b,'f' 赋于c
是对的,但是还有 回车 符留在stdin中,下一次调用scanf()会将 回车 符赋给第一个变量。
输入d e f
为什么是把'd' 赋于a,'f' 赋于b,'e' 赋于c ------------>不明白!!!
这个认识是错误的,空格也是字符,这里是把'd' 赋于a,' '(空格) 赋于b,'e' 赋于c
而'f'及 回车 符留在stdin
给你示例:
#include <stdio.h> #include <conio.h> #include <io.h> main() { char a,b,c; for(;;){
printf("INPUT A,B,C:\n"); scanf("%c%c%c",&a,&b,&c); fflush(stdin);//注意:将这个函数注释掉,看看结果有何变化 printf("a=%c b=%c c=%c \n",a,b,c);} }
[此贴子已经被作者于2004-07-01 14:31:27编辑过]