首页 > 编程笔记 > C语言笔记 阅读:32

C语言输出函数汇总(putchar、puts和printf)

在 C语言中,输出函数是程序与用户交互的重要工具,用于将数据(如文本、数字等)显示到屏幕或其他输出设备上。

C语言程序中,常用的输出函数有 3 个,分别是 printf()putchar()puts(),它们定义在标准库 <stdio.h> 中,每个函数都有特定的用途和特性。

本教程将全面介绍这 3 种输出函数,详细讲解它们的用法、格式控制以及适用场景,帮助你掌握如何高效输出数据。

输出函数概述

C语言的输出函数依赖标准输入输出库 <stdio.h>,它们将数据写入标准输出(通常是屏幕)。这些函数各有侧重:有的适合格式化输出,有的专注于简单字符或字符串输出。以下是我们将要讲解的主要输出函数:


接下来,我们将逐一深入探讨这些函数的用法和特点。

C语言printf()格式化输出函数

printf() 是C语言中最强大、最常用的输出函数,全称是“print formatted”。它允许你通过格式说明符控制输出的样式,支持整数、浮点数、字符、字符串等多种类型。


函数原型(定义在 <stdio.h> 中):

int printf(const char *format, ...);

格式说明符

格式说明符以 % 开头,后接类型字符,常见的有:
 

说明符 类型 示例输出
%d, %i 有符号整数 123
%u 无符号整数 4294967295
%f 浮点数(默认 6 位小数) 3.141590
%e 科学计数法 3.141590e+00
%c 字符 A
%s 字符串 Hello
%p 指针地址(十六进制) 0x7fff1234


还可以加修饰符控制精度、宽度等,例如 %.2f(2 位小数)、%5d(宽度 5)。


【实例】基本用法。
#include <stdio.h>

int main(void) {
    int a = 42;
    float b = 3.14159;
    char c = 'X';
    char str[] = "Hello";
    printf("Int: %d, Float: %.2f, Char: %c, String: %s\n", a, b, c, str);
    return 0;
}

输出结果:

Int: 42, Float: 3.14, Char: X, String: Hello

%.2f 限制 b 输出 2 位小数,\n 换行。


【实例】高级用法 - 宽度和对齐。
#include <stdio.h>

int main(void) {
    printf("%10d\n", 123);    // 右对齐,宽度 10
    printf("%-10d\n", 123);   // 左对齐,宽度 10
    printf("%05d\n", 123);    // 补零,宽度 5
    return 0;
}

输出结果:

       123
123       
00123

C语言putchar()输出单个字符

putchar() 是一个简单函数,用于输出单个字符。它比 printf() 轻量,适合只需要输出字符的场景。


函数原型:

int putchar(int c);

【实例】基本用法。
#include <stdio.h>

int main(void) {
    putchar('A');         // 输出字符 'A'
    putchar(66);          // 输出 ASCII 值为 66 的字符 'B'
    putchar('\n');        // 换行
    return 0;
}

输出结果:

AB

说明:putchar() 接受整数,但将其作为字符解释输出。


【实例】循环输出。
#include <stdio.h>

int main(void) {
    for (int i = 'A'; i <= 'C'; i++) {
        putchar(i);
    }
    putchar('\n');
    return 0;
}

输出结果:

ABC

C语言puts()输出字符串并换行

puts() 用于输出字符串,相比 printf(),它更简单,且自动在末尾添加换行符 \n


函数原型:

int puts(const char *s);

【实例】基本用法。
#include <stdio.h>

int main(void) {
    puts("Hello, World!");    // 输出字符串并换行
    puts("C Language");       // 再次输出并换行
    return 0;
}

输出结果:

Hello, World!
C Language

说明:puts() 不支持格式化,只能输出整个字符串,且总是换行。

与printf()的对比

#include <stdio.h>

int main(void) {
    printf("Hello");          // 无换行
    puts("Hello");            // 自动换行
    return 0;
}

输出结果:

HelloHello

输出函数对比总结

函数 功能 换行 格式化 适用场景
printf 格式化输出多种类型 手动(\n 支持 复杂输出
putchar 输出单个字符 手动(\n 不支持 字符处理
puts 输出字符串 自动 不支持 简单字符串

注意事项

1) 返回值检查

所有输出函数都有返回值,可用于错误检测。例如:

#include <stdio.h>

int main(void) {
    if (printf("Test\n") < 0) {
        puts("Output failed");
    }
    return 0;
}

2) 缓冲区

标准输出通常是行缓冲的,\n 会刷新缓冲区。若无换行,输出可能延迟显示,可用 fflush(stdout) 强制刷新。

3) 类型匹配

printf() 的格式说明符必须与参数类型匹配,否则可能导致未定义行为。例如,用 %d 输出浮点数会出错。

总结

C语言常用的输出函数有 3 个,分别是 printf()putchar()puts() ,它们各有千秋:


读完本文,你已经完全掌握了这三种输出函数的用法,了解了它们各自的特性和适用场景,可以根据实际需求选择合适的输出函数。

相关文章