C语言 scanf()函数的数据输入操作
(1)输入多个数据的分隔处理。如果在格式字符串中不包含除了格式指示符之外的普通字符,则在输入多个数据时,可以使用空格隔开,或者按Tab键分开,或者按Enters隔开。例如:
scanf ("%d%d",&a,&b);
假设要给a输入12,给b输入24,则正确的输入操作为: 12口24/
或者: 12/
24/
或者: 12 24/ (输入12后,按下Tab键)。
(2)当“格式字符串”中出现普通字符,务必原样输入。例如:
scanf("%d,%d",&a,&b);
假设给a输入12,给b输入24,正确的输入操作为: 12, 24/
(3)当scanfO函数中的格式字符串中出现转义字符(如\n ),系统并不把它当转义字符来解释,从而产生一个控制操作,将其视为普通字符,所以也要原样输入。例如:
scanf("a=%d.b=%d\n",&a.&b);
假设给a输入12,给b输入24,正确的输入操作为:
a*12, b=24\n/
(4)输入数据时,遇到以下情况,系统认为该数据输入结束:
①遇到空格,或者按Enters,或者按Tab键。
②遇到输入域宽度结束。例如“%3d”,只取3列。
③遇到非法输入。如在输入数值数据时,遇到字母等非数值符号(数值符号仅由数字字符0~9、小数点和正负号构成)。例如:
int a,b;
scanf ("%d",&a);
printf("a=%d\n",a,b);
程序执行时,当输入:
123a5/
则输出:
a=123, b=-858993460
系统为变量a读取数据时,当读取了 “123”,其后面是字符“a”,这不是一个合法的数值字符, 所以认为本次输入结束。
(5)使用格式说明符“%c”输入单个字符时,空格和转义字符均作为有效字符被输入。例如:
scanf("%c%c%c".&cl,&c2,&c3);
printf ( "chl-%c #ch2~%c ,ch3—%c\n".chl,ch2 ,ch3);
程序执行时,若输入ACDBCIC/,则系统将字母‘A’赋值给c1,空格赋值给c2,字母‘B’赋值给c3。
点击加载更多评论>>