使用printf后如何打印一个int和一个带空格的字符串?
How to print an int and a string with spaces after using printf?
我通常使用 printf("%-8d",a);
例如在一个整数之后(包括)8 个空格。
我的代码:
#include <stdio.h>
#include <string.h>
int main()
{
int a = 10;
char b = "Hello";
}
如何打印:'#10-Hello '
16个空格(8是整数和字符串,后面是8个空格)?
分两步完成。首先将数字和字符串与 sprintf()
组合,然后在 16 个字符的字段中打印结果字符串。
int a = 10;
char *b = "Hello";
char temp[20];
sprintf(temp, "#%d-%s", a, b);
printf("%-16s", temp);
一个制表符是8个空格,所以,你可以加上\t\t
以下是打印您想要的内容的超级基本方法。
printf('#' + a + '-' + b + '\t\t');
我不太熟悉 C 的语法,所以它可能是:
printf('#', a, '-', b, '\t\t');
此外,如之前的回答所述,“Hello”不是一个字符,而是一个字符数组或字符串。
#include <stdio.h>
#include <string.h>
int main()
{
int a = 10;
char b[] = "Hello";
printf("#%d-%-17s",a,b);
}
这应该可以完成工作,请根据需要调整间距
可以用 2 printf()
秒完成。使用第一个的 return 值知道它的打印长度,然后打印宽度为 16 所需的空间。不需要临时缓冲区。
#include <assert.h>
#include <stdio.h>
int main(void) {
int width = 16;
int a = 10;
char *b = "Hello"; // Use char *
int len = printf("#%d-%s", a, b);
assert(len <= width && len >= 0);
printf("%*s", width - len, ""); // Print spaces
}
我通常使用 printf("%-8d",a);
例如在一个整数之后(包括)8 个空格。
我的代码:
#include <stdio.h>
#include <string.h>
int main()
{
int a = 10;
char b = "Hello";
}
如何打印:'#10-Hello '
16个空格(8是整数和字符串,后面是8个空格)?
分两步完成。首先将数字和字符串与 sprintf()
组合,然后在 16 个字符的字段中打印结果字符串。
int a = 10;
char *b = "Hello";
char temp[20];
sprintf(temp, "#%d-%s", a, b);
printf("%-16s", temp);
一个制表符是8个空格,所以,你可以加上\t\t 以下是打印您想要的内容的超级基本方法。
printf('#' + a + '-' + b + '\t\t');
我不太熟悉 C 的语法,所以它可能是:
printf('#', a, '-', b, '\t\t');
此外,如之前的回答所述,“Hello”不是一个字符,而是一个字符数组或字符串。
#include <stdio.h>
#include <string.h>
int main()
{
int a = 10;
char b[] = "Hello";
printf("#%d-%-17s",a,b);
}
这应该可以完成工作,请根据需要调整间距
可以用 2 printf()
秒完成。使用第一个的 return 值知道它的打印长度,然后打印宽度为 16 所需的空间。不需要临时缓冲区。
#include <assert.h>
#include <stdio.h>
int main(void) {
int width = 16;
int a = 10;
char *b = "Hello"; // Use char *
int len = printf("#%d-%s", a, b);
assert(len <= width && len >= 0);
printf("%*s", width - len, ""); // Print spaces
}