1. **基本数值类型**
- `%d`:用于十进制整数输出或接收。
c
int num = 42;
printf("%d",num); // 输出 "42"
scanf("%d",&num);
- `%i`:与%d相同,也是处理有符号整型变量。
- `%u`: 对应无符号整数(unsigned integer)。
- `%f` 或者 `%lf`(对于double):浮点数打印或者读取。
c
double pi = 3.14159;
printf("%.2f\n",pi); // 输出"3.14"
- `%e`, `%E` : 科学计数方式显示浮点数如 `1.000000e+00`.
- `%g` 和 `%G` :自动选择%f还是%e哪种形式更适合表示当前数字。
2. **字符相关格式符**
- `%c`:单个字符输出或接受。
c
char ch = 'A';
printf("%c",ch);
scanf("%c",&ch);
- `%s`: 字符串输出或接受。
c
char str[] = "Hello";
printf("%s",str);
scanf("%s",str);
3. **特殊用途的格式符**
- `\n`:换行符,在字符串内可以用来实现文本新起一行的效果,并不需配合格式占位符使用。
- `%p`:以十六进制的形式打印指针地址值。
- `%x/%X`:以十六进制的方式打印整数值。
- 占宽修饰符和精度修饰符例如`%-8d`,`%.2f` 等可用于指定字段宽度和小数精确度。
此外还有其他高级用法:
- 场所保留符 `' '` 可插入非打印空白字符作为填充物进行对其;
- 长度修饰符 `hh`, `h`, `l`(也可以写作'L') 分别对应char类型的short/int/long long(intmax_t)/以及float/double(long double),来确保正确解析不同大小的数据类型。
通过以上这些详尽而实用的例子,我们能深入了解C语言中各种格式标志的具体含义及应用场景。掌握好这一部分知识有助于编写出更高效准确的代码逻辑,尤其是在涉及复杂IO操作时尤为重要。同时,请务必注意不同类型的安全合理转换问题以免引发潜在错误。