C语言中的printf
和scanf
函数是进行标准输入输出操作的基本函数,广泛用于数据的显示和获取。它们定义在<stdio.h>
头文件中。
printf函数
printf
用于向标准输出(通常是屏幕)输出格式化文本。它的原型如下:
1int printf(const char *format, ...);
format
:格式字符串,用于指定后续参数如何输出。格式字符串中可以包含格式说明符(如%d
、%s
等),用于指定相应参数的输出格式。…
:可变参数列表,与格式字符串中的格式说明符相对应的实际数据。
代码示例:
1#include <stdio.h>
2
3int main() {
4 int num = 10;
5 float pi = 3.14;
6 char* str = "Hello, C!";
7
8 printf("Integer: %d\n", num);
9 printf("Floating point: %.2f\n", pi);
10 printf("String: %s\n", str);
11
12 return 0;
13}
scanf函数
scanf
用于从标准输入(通常是键盘)读取格式化输入。它的原型如下:
1int scanf(const char *format, ...);
format
:格式字符串,指定期望输入的格式,与printf
的格式字符串类似,包含格式说明符。…
:可变参数列表,每个参数都是指向变量的指针,用于存储输入的数据。
代码示例:
1#include <stdio.h>
2
3int main() {
4 int num;
5 float pi;
6 char str[50];
7
8 printf("Enter an integer: ");
9 scanf("%d", &num);
10 printf("Enter a floating-point number: ");
11 scanf("%f", &pi);
12 printf("Enter a string: ");
13 scanf("%s", str); // 注意:字符串不需要&符号
14
15 printf("You entered integer: %d, float: %.2f, and string: %s\n", num, pi, str);
16
17 return 0;
18}
编码事项
格式字符串的正确使用:确保
printf
和scanf
中的格式说明符与后续参数的类型匹配。不匹配的类型可能导致未定义行为。处理`scanf`的返回值:
scanf
返回成功读取的数据项数。检查这个返回值可以帮助识别输入错误。安全地读取字符串:使用
scanf
读取字符串时,限制输入的长度以避免缓冲区溢出,例如scanf("%49s", str);
为最多读取49个字符到str
数组。避免`scanf`导致的缓冲区问题:特别是在连续读取不同类型的输入时(如读取一个数字后读取字符串),可能需要使用
getchar()
消耗掉行尾的换行符。使用`fflush(stdin)`的局限性:
fflush(stdin)
在某些环境下用来清除输入缓冲区,但它是未定义行为,不可移植且不推荐使用。考虑其他方法,如使用getchar()
。
通过这些示例和注意事项,可以更好地理解和使用printf
和scanf
函数,它们是C语言进行标准输入输出操作的基础。
文章转载自一如老师,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




