一、scanf函数的概述
scanf是C/C++语言中用于格式化输入的函数,它是为了读取特定类型数据而设计的。使用 scanf 函数可以向程序输入多种类型的数据,包括整数、实数、字符等等。基本形式是:scanf(Template, pointed strings)。其中的Template是格式控制字符串,pointed strings是要输入的数据。
二、读取不同数据类型
scanf函数可以读入不同的数据类型,比如整型、浮点型、字符型、字符串等等。
1. 读取整型数值
int num; scanf("%d", &num);
2. 读取浮点型数值
float f1; double d1; scanf("%f", &f1); scanf("%lf", &d1);
3. 读取字符型
char c; scanf("%c", &c);
4. 读取字符串
char s[10]; scanf("%s", s);
三、输入多个数值
scanf函数可以输入多个变量,每个变量用逗号隔开。
int a, b, c; scanf("%d,%d,%d", &a, &b, &c);
四、输入格式控制字符
在格式控制字符串中,可以使用多种格式控制符来控制输入的格式,如:
1. %d:表示输入的是十进制整数。
int num; scanf("%d", &num);
2. %f:表示输入的是浮点型数值。
float f1; double d1; scanf("%f", &f1); scanf("%lf", &d1);
3. %c:表示输入的是字符。
char c; scanf("%c", &c);
4. %s:表示输入的是字符串。
char s[10]; scanf("%s", s);
5. %%:表示输入一个百分号。
printf("%%");
五、输入错误的处理
在输入错误的时候,scanf会返回一个非零的值,表示成功读入的变量数目。可以通过这个值来判断是否读入了正确的变量数量。
int n; while (scanf("%d", &n) != EOF) { if (n == 0) printf("输入错误!\n"); else printf("输入正确!\n"); }
六、输入结束符
在标准输入中,可以通过输入“Ctrl+Z”按钮或者输入文件达到输入结束符的效果。在程序中,可以通过检查 scanf 的返回值是否等于 EOF 来判断是否达到了输入的结束符。
int n, score, sum = 0; while (scanf("%d,%d", &n, &score) != EOF) { printf("学生%d的分数是:%d\n", n, score); sum += score; } printf("总分数是:%d\n", sum);
七、总结
scanf函数是一个很有用的输入函数,可以输入不同的数据类型以及多个变量。同时,通过掌握格式控制符和处理输入错误的方法,我们可以更好地使用这个函数。