C语言中的输入输出操作主要依赖于printf
和scanf
函数,这两个函数通过格式化字符串控制输入输出的格式。格式化字符串包含文本和格式说明符,格式说明符由%
符号和表示数据类型的字符组成,用于指定变量的输出格式或输入的期望格式。
printf的格式声明
printf
函数用于向标准输出设备(通常是屏幕)输出格式化的文本。格式说明符告诉printf
如何显示变量的值。
常用的格式说明符包括:
%d
或%i
:显示整数。%u
:显示无符号整数。%f
:显示浮点数。%s
:显示字符串。%c
:显示单个字符。%%
:显示%
字符本身。
代码示例:
1#include <stdio.h>
2
3int main() {
4 int integer = 10;
5 float floatingPoint = 3.14159;
6 char character = 'A';
7 char* string = "Hello, World!";
8
9 printf("Integer: %d\n", integer);
10 printf("Floating-point: %.2f\n", floatingPoint); // 保留两位小数
11 printf("Character: %c\n", character);
12 printf("String: %s\n", string);
13
14 return 0;
15}
scanf的格式声明
scanf
函数从标准输入设备(通常是键盘)读取格式化的输入。格式说明符告诉scanf
期望输入的数据类型。
常用的格式说明符:
%d
:读取整数。%u
:读取无符号整数。%f
:读取浮点数。%s
:读取字符串,直到遇到空白字符。%c
:读取单个字符。
代码示例:
1#include <stdio.h>
2
3int main() {
4 int integer;
5 float floatingPoint;
6 char character;
7 char string[50]; // 字符数组用于存储字符串
8
9 printf("Enter an integer: ");
10 scanf("%d", &integer);
11 printf("Enter a floating-point number: ");
12 scanf("%f", &floatingPoint);
13 printf("Enter a character: ");
14 scanf(" %c", &character); // 注意%c前的空格,用于消耗前一个输入后的换行符
15 printf("Enter a string: ");
16 scanf("%s", string); // 字符串不需要&
17
18 printf("You entered integer: %d, float: %.2f, character: %c, and string: %s\n",
19 integer, floatingPoint, character, string);
20
21 return 0;
22}
编码事项
匹配格式说明符与变量类型:确保每个格式说明符与相应变量的类型相匹配,以避免未定义行为。
限制字符串输入的长度:使用
%s
读取字符串时,确保目标缓冲区足够大,避免缓冲区溢出。可以在%s
中指定最大字符数,如%49s
限制输入最多49个字符。处理输入缓冲区问题:
scanf
读取数据后,输入缓冲区中可能残留换行符或其他空白字符,这可能会影响后续的scanf
调用。对于字符输入,通常在格式字符串前加一个空格(如" %c"
),以跳过前面的空白字符。检查`scanf`的返回值:
scanf
返回成功读取的项目数。检查返回值可以帮助识别输入错误或文件结束(EOF)。
通过正确使用printf
和scanf
的格式声明,可以实现灵活的输入输出操作,使C语言程序与用户的交互更加友好和有效。
文章转载自一如老师,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




