2、scanf函数
scanf(
格式控制,地址表列)
“格式控制”的含义同
printf
函数;“地址表列”是由若干个地址组成的表列,可以是变
量的地址,或字符串的首地址。
格式控制:
普通字符:?
? ? ? ?原样输入 //不建议写?
占位符:
? ? ? 占了一个位置,将输入的数据,转换位占位符指定的格式,放到地址列表对应的一块内存空上?
? ? ? 占位符也决定能识别的字符的范围
注意:
? ? 1.第二个参数注意一定要写 & (取地址)
?? ? ?Segmentation fault (core dumped) //程序试图访问不能被访问的空间?
?? ?2.多个数据输入时
?? ? ?以空白符作为分割符
?? ? ?空白符
?? ? ?空格?
?? ? ?回车?
?? ? ?tab?
?? ?3.浮点型数据输入时?
?? ? ?double -- %lf
?? ? ?类型要匹配?
?? ? ?int - %d
?? ? ?long - %ld
?? ? ?long long - %lld
?? ?4.辅助控制符?
?? ? ?m ?宽度 -- 输入的宽度?
?? ? ?达到宽度时,输入匹配结束?
?? ? ?只能获取到前m个数据?
?? ??5.scanf匹配结束的条件?
?? ? 123 456 789
? ? ?scanf("%d%d%d",&a,&b,&c);?? ??
? ? ?a.空白符?
?? ? b.指定宽度?
?? ? 123456
?? ? scanf("%3d",&a); //123
? ? ?c.非法字符
? ? ?123a45?? ??
?? ? scanf("%d",&a);
?? ??6. %c 字符占位符?
?? ? ?几乎可以识别键盘输入的任何字符?
?? ? ?scanf("%c %c %c",&c1,&c2,&c3);