前言printf是 C 语言中最基础、最常用的输出函数几乎每一段 C 语言代码都会用到它。本文将从printf的基本框架入手深入讲解格式控制串的组成与用法帮助读者彻底掌握这一核心函数。一、printf 函数的基本框架printf函数的原型定义在stdio.h头文件中其基本调用形式如下printf(格式控制串,输出列表);其中格式控制串用双引号括起来的字符串包含普通字符和格式说明符。输出列表可选是需要输出的变量或表达式与格式说明符一一对应。1. 最简单的用法只输出普通字符串不包含任何格式说明符#includestdio.hintmain(){printf(Hello, World!\n);return0;}2. 带格式说明符的用法#includestdio.hintmain(){intage20;floatscore95.5;printf(年龄%d成绩%.1f\n,age,score);return0;}二、格式控制串详解格式控制串由普通字符和格式说明符组成。普通字符原样输出格式说明符以%开头用于控制数据的输出格式。1. 常用格式说明符格式说明符含义示例%d输出十进制整数printf(%d, 10);%f输出浮点数printf(%f, 3.14);%c输出单个字符printf(%c, A);%s输出字符串printf(%s, hello);%x输出十六进制整数printf(%x, 255);%o输出八进制整数printf(%o, 8);%e以科学计数法输出printf(%e, 12345.678);2. 格式说明符的完整结构一个完整的格式说明符可以包含以下部分%[标志][宽度][.精度][长度]类型标志Flag标志作用-左对齐输出正数前显示号0用0填充空白位置空格正数前显示空格宽度Width指定输出的最小宽度不足部分用空格填充printf(%5d\n,42);// 输出 42printf(%-5d\n,42);// 输出 42 精度Precision对于浮点数指定小数点后的位数对于字符串指定最大输出长度printf(%.2f\n,3.14159);// 输出 3.14printf(%.3s\n,hello);// 输出 hel长度修饰符Length修饰符含义l长整型longll长长整型long longh短整型shortlonglongbig1234567890123LL;printf(%lld\n,big);三、综合示例下面是一个综合运用各种格式控制串的完整示例#includestdio.hintmain(){intnum255;floatpi3.1415926;charchA;charstr[]C Language;printf(十进制%d\n,num);printf(十六进制%x\n,num);printf(八进制%o\n,num);printf(浮点数保留2位%.2f\n,pi);printf(字符%c\n,ch);printf(字符串%s\n,str);printf(左对齐宽度10%-10d|\n,num);printf(右对齐宽度10%10d|\n,num);printf(补零宽度8%08d\n,num);return0;}运行结果十进制255 十六进制ff 八进制377 浮点数保留2位3.14 字符A 字符串C Language 左对齐宽度10255 | 右对齐宽度10 255| 补零宽度800000255四、常见注意事项格式说明符与参数类型必须匹配否则会产生未定义行为。\n是换行符属于转义字符不是格式说明符。%%用于输出一个百分号printf(进度100%%\n);浮点数默认输出 6 位小数可通过精度控制调整。总结printf函数虽然简单但格式控制串的灵活运用可以满足绝大多数输出需求。掌握基本框架和格式说明符的组合规则是写出清晰、规范 C 语言代码的重要基础。希望本文能帮助你更好地理解和使用printf。
