1.scanf函数的基本用法
scanf函数处理用户输入的原理是,用户的输入先放入缓存,等到按下回车键后按照占位符对缓存进行解读。
解读用户输入时,会从上次解读遗留的第一个字符开始,直到读完缓存,或遇到第一个不符合条件的字符为止。
1 #include <stdio.h>
2 int main()
3 {
4 int x;
5 float y;
6 //用户输入" -13,45e12# 0"
7 scanf("%d\n",&x);
8 scanf("%f\n",&y);
9 return 0;
10 }
上面的示例中,scanf()读取用户输入时,%d占位符会忽略起首的空格,%f会从.读取开始,因为#不属于浮点数的有效字符,所以会停在这里。
由于scanf()可以连续处理多个占位符,所以上面这个例子可以写成下面这样。
1 #include <stdio.h>
2 int main()
3 {
4 int x;
5 float y;
6 //用户输入" -13,45e12# 0"
7 scanf("%d%f",&x,&y);
8 printf("%d%e",x,y);
9 return 0;
10 }
scanf的返回值是一个整数,表示成功读取的变量个数。如果没有读取任何项,或匹配失败则返回0.如果读取到文件结尾,则返回常量EOF。
注;EOF=-1.