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

C语言——printf和scanf函数

一如老师 2024-04-12
190

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论