暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

格式化字符串控制输入输出的格式

一如老师 2024-04-13
184

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    charstring = "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}

编码事项

  1. 匹配格式说明符与变量类型:确保每个格式说明符与相应变量的类型相匹配,以避免未定义行为。

  2. 限制字符串输入的长度:使用%s
    读取字符串时,确保目标缓冲区足够大,避免缓冲区溢出。可以在%s
    中指定最大字符数,如%49s
    限制输入最多49个字符。

  3. 处理输入缓冲区问题scanf
    读取数据后,输入缓冲区中可能残留换行符或其他空白字符,这可能会影响后续的scanf
    调用。对于字符输入,通常在格式字符串前加一个空格(如" %c"
    ),以跳过前面的空白字符。

  4. 检查`scanf`的返回值scanf
    返回成功读取的项目数。检查返回值可以帮助识别输入错误或文件结束(EOF)。

通过正确使用printf
scanf
的格式声明,可以实现灵活的输入输出操作,使C语言程序与用户的交互更加友好和有效。


文章转载自一如老师,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论