Menu
×
   ❮   
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!");
自己尝试 »

定义和用法

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

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

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

格式说明符

The format 字符串可以包含 格式说明符,这些说明符描述了在何处以及如何表示传递给函数的附加参数。

格式说明符的形式为 %[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... 可选。任意数量的附加参数,它们的值可以使用 format 参数中的说明符进行格式化并打印到控制台。

技术细节

返回 一个 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("内存大小: %d\n", memorySize);
printf("字符串大小: %d\n", stringSize);
自己尝试 »

❮ C stdio 库

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.