目录
占位符可以在代码运行时为输入的数据进行占位,帮助程序员控制输出的格式,不同类型的占位符代表不同的数据类型。
常用占位符及用法
整数占位符:
- %d : 用于输出有符号整数;
- %u : 用于输出无符号整数;
- %x : 用于输出无符号十六进制整数(小写);
- %X : 用于输出无符号十六进制整数(大写)。
int main() { int num = 123; printf("整数:%d\n", num); printf("无符号整数:%u\n", (unsigned int) num ); printf("十六进制(小写):%x\n", num); printf("十六进制(大写):%X\n", num); return 0; }
无符号使用unsigned关键字来声明,只能表示0和正整数。
字符和字符串占位符:
- %c : 用于输出单个字符;
- %s : 用于输出字符串。
int main() { char ch = 'a'; char str[] = "Hello, world!"; printf("字符:%c\n", ch); printf("字符串:%s\n", str); return 0; }
浮点数占位符:
- %f : 用于输出浮点数;
- %e : 用于输出指数形式的浮点数(小写);
- %E : 用于输出指数形式的浮点数(大写);
- %g : 用于选择最合适的格式(%f或者%e);
- %G : 用于选择最合适的格式(%F或者%E).
int main() { float pi = 3.14; printf("浮点数:%f\n", pi); printf("指数形式(小写):%e\n", pi); printf("指数形式(大写):%E\n", pi); printf("自动选择格式:%g\n", pi); return 0; }
指针占位符:
- %p : 用于输出指针的值。
int main() { int num = 42; int* ptr = # printf("指针: % p\n", ptr); return 0; }
数据类型占位符:
- %zd : 用于输出sizeof运算符的返回值。
int main() { int num = 10; printf("数据类型的大小:%zd\n", sizeof(num)); return 0; }
占位符的宽度和精度控制:
可以通过在 % 和 字符 中间添加数字来实现对 宽度 和 精度 的控制,宽度用于指定最小字符数,精度控制小数点后的位数或字符串的最大长度。
int main() {
int num = 42;
float pi = 3.14159;
char str[] = "Hello, world!";
printf("精度为2的浮点数:%.2f\n", pi);
printf("精度为2的字符串:%.2s\n", str);
printf("宽度为5:%5d\n", num);
printf("宽度为5且左对齐:%-5d\n", num);
return 0;
}
可以使用 * 动态指定宽度和精度
int main()
{
int width = 10;
float pi = 3.14159;
printf("动态宽度:%*f\n", width, pi);
return 0;
}
其他占位符:
%e : 指数形式输出实数(指定浮点类型,%e对应float,%E对于double);
%o : 输出八进制数;
%% : 输出百分号
结论:
占位符可以实现格式化输出,字符串处理,合理运用就可以提高编程效率和代码质量。