菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C stdio printf() 函数

❮ C stdio 库


示例

输出一个字符串

printf("Hello World!");
自己动手试一试 »

定义和用法

printf() 函数将格式化的字符串写入控制台。

printf() 函数定义在 <stdio.h> 头文件中。

注意: 更准确地说,它写入由 stdout 指定的位置,通常是控制台,但它也可以被配置指向文件或其他位置。

格式说明符

格式字符串可以包含格式说明符,这些说明符描述了要传递到函数的其他参数的表示位置和方式。

格式说明符的形式为 %[flags][width][.precision][length]specifier。 [方括号]中的组件是可选的。

每个组件的解释

  • flags - 可选。以下任意字符的序列
    • - - 使输出左对齐,通过在右侧添加填充空格而不是左侧。
    • # - 根据转换显示格式化数据的备用表示形式。
    • + - 使正数始终以 "+" 作为前缀。
    • - (一个空格字符) 在正数前加上空格,主要目的是使数字能够与负数对齐。
    • 0 - 用零填充数字的左侧。
  • width - 可选。一个整数,指定输出应占用的最小字符数。如果需要,会在右侧添加空格以达到此数字,如果使用了 - 标志,则会在左侧添加空格。如果使用 * 星号,则宽度由要表示的参数之前的参数给出。
  • .precision - 可选。一个 . 后面跟着一个整数,指示在格式化数据中显示多少个小数位数。
  • length - 可选。一个字符序列,它改变参数的预期数据类型。它可以是以下之一
    • hh - 对于整数,期望 char 类型。
    • h - 对于整数,期望 short int 类型。
    • l - 对于整数,期望 long int 类型。
             对于字符,期望 wint_t 类型。
             对于字符串,期望 wchar_t* 类型。
    • ll - 对于整数,期望 long long int 类型。
    • j - 对于整数,期望 intmax_tuintmax_t 类型。
    • z - 对于整数,期望 size_t 类型。
    • t - 对于整数,期望 ptrdiff_t 类型。
    • L - 对于浮点数,期望 long double 类型。
  • specifier - 必需。一个字符,指示参数的数据应如何表示。可能的字符列表显示在下表中。

说明符列表

字符 说明符 描述
di 十进制整数 将整数表示为十进制整数。
u 无符号十进制整数 将一个整数表示为无符号十进制整数。
o 八进制整数 将整数表示为八进制整数。 "#" 标志将用 "0" 作为前缀。
xX 十六进制整数 将整数表示为十六进制整数。 "#" 标志将用 "0x" 作为前缀。如果使用 "X",则数字 A 到 F 以及字母 X 将以大写形式显示。
fF 浮点数 表示浮点数。如果使用 "F",则字母(如 "nan" 的值)将以大写形式表示。 "#" 标志将强制显示小数点,即使没有小数位。
eE 科学计数法 用科学计数法表示浮点数。如果使用 "E",则字母将以大写形式表示。 "#" 标志将强制显示小数点,即使没有小数位。
gG 通用数字 对浮点数使用 fe 之间的最短表示形式。如果使用 "G",则它在 FE 之间选择。
aA 十六进制浮点数 显示浮点数的内部表示,带有十六进制数字。如果使用 "A",则数字将以大写形式表示。
c 字符 表示一个字符。如果参数是整数,则表示整数指定的 ASCII 值的字符。
s 字符串 表示一个字符串。
p 指针 表示指针的内存地址,通常用十六进制数字表示。
n 无输出 到目前为止已打印的字符数将被写入参数。参数必须是指向整数的指针。
% 百分号 表示一个字面量 "%" 字符。

语法

printf(const char * format, arg1, arg2...);

参数值

参数 描述
format 必需。一个字符串,表示要写入文件的数据的格式。
arg1, arg2... 可选。任何数量的其他参数,它们的值可以使用格式参数中的说明符进行格式化并打印到控制台。

技术详情

返回 一个 int 值,表示打印的字符数。如果发生错误,则返回负数。

更多示例

示例

表示各种类型的整数

char var1 = 102;
short int var2 = 2024;
int var3 = 95;
long int var4 = 212;
long long int var5 = 1200L;
printf("%hhd %hd %d %ld %lld", var1, var2, var3, var4, var5);
自己动手试一试 »

示例

以多种方式表示整数

int value = 1024;
printf( "%d \n", value); // 整数
printf( "%o \n", value); // 八进制
printf( "%x \n", value); // 十六进制
printf("%#o \n", value); // 带 "0" 前缀的八进制
printf("%#X \n", value); // 带 "0X" 前缀的大写十六进制
自己动手试一试 »

示例

以多种方式表示浮点数

float myFloat = 19.99;
printf("%f \n", myFloat); // 浮点数
printf("%e \n", myFloat); // 科学计数法
printf("%g \n", myFloat); // 最佳
printf("%.2f \n", myFloat); // 2 位小数
printf("%8.2f \n", myFloat); // 8 个字符宽,2 位小数
printf("%08.2f \n", myFloat); // 零填充,8 个字符宽,2 位小数
自己动手试一试 »

示例

使用 %n 说明符测量字符串长度

// 为字符串预留 20 字节内存
char myString[20] = "Hello World!\0";
int memorySize = sizeof(myString);
int stringSize;

// 打印字符串并使用 %n 进行测量
printf("%s%n\n", myString, &stringSize);

// 打印字符串的大小
printf("Memory size: %d\n", memorySize);
printf("String size: %d\n", stringSize);
自己动手试一试 »

❮ C stdio 库

×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持