在C语言中,可以使用`printf`函数和格式说明符`%*d`或`%*s`来实现动态宽度的输出。`%*d`用于输出整数,`%*s`用于输出字符串。宽度值是一个整数,表示输出字段的最小宽度。如果输出内容的长度小于这个宽度,那么输出内容会右对齐;如果输出内容的长度大于或等于这个宽度,那么输出内容会左对齐。
输出整数
```c
include
int main() {
int a = 1234;
int width = 5;
printf("%*d\n", width, a); // 输出 "1234 ",宽度为5,右对齐
return 0;
}
```
输出字符串
```c
include
int main() {
char str[] = "Hello, World!";
int width = 20;
printf("%*s\n", width, str); // 输出 "Hello, World!",宽度为20,右对齐
return 0;
}
```
使用星号占位符
```c
include
int main() {
int a = 1234;
printf("%-*d\n", 5, a); // 输出 "1234 ",宽度为5,右对齐
printf("%*s\n", 5, "Hello"); // 输出 "Hello ",宽度为5,右对齐
return 0;
}
```
通过这些示例,你可以看到如何使用`%*d`和`%*s`来实现动态宽度的输出。根据具体需求,你可以调整宽度值以控制输出内容的对齐方式。