右对齐c中的数字?

右对齐c中的数字?,c,text-alignment,C,Text Alignment,我有一个代码片段,如下所示- int main() { double firstNumber = 245.3252; double secondNumber = 32.4324; printf("This is my first number: %.2f", firstNumber); printf("And what's gonna be in the front if my second number: %.2f", secondNumber); return 0; }

我有一个代码片段,如下所示-

int main() {
  double firstNumber = 245.3252;
  double secondNumber = 32.4324;
  printf("This is my first number: %.2f", firstNumber);
  printf("And what's gonna be in the front if my second number: %.2f", secondNumber);
  return 0;
}
这种代码的问题是它会给我一个输出,如下所示-

这是我的第一个号码:245.32
如果我的第二个号码是32.43,前面会是什么
但是,我希望输出如下所示(预期输出)-

这是我的第一个号码:245.32
如果我的第二个号码是32.43,前面会是什么

我试图使用宽度修饰符,比如%20s左右,但是如果我的第一个数字是十位数字,那么对齐会再次消失。有人能告诉我怎样才能使它们看起来完全对齐吗?谢谢

右对齐实际上是默认设置,您只需确保正确指定宽度。你想要这样的东西:

printf("This is my first number:                              %8.2f", firstNumber);
printf("And what's gonna be in the front if my second number: %8.2f", secondNumber);

右对齐实际上是默认设置,您只需要确保正确指定宽度。你想要这样的东西:

printf("This is my first number:                              %8.2f", firstNumber);
printf("And what's gonna be in the front if my second number: %8.2f", secondNumber);

最简单的方法是:在第一条语句的格式字符串中添加必要的空格字符,同时确保您还修复了数字所使用的字符数

int main() {
  double firstNumber = 245.3252;
  double secondNumber = 32.4324;
  printf("This is my first number:                              %6.2f", firstNumber);
  printf("And what's gonna be in the front if my second number: %6.2f", secondNumber);
  return 0;
}

最简单的方法是:在第一条语句的格式字符串中添加必要的空格字符,同时确保您还修复了数字所使用的字符数

int main() {
  double firstNumber = 245.3252;
  double secondNumber = 32.4324;
  printf("This is my first number:                              %6.2f", firstNumber);
  printf("And what's gonna be in the front if my second number: %6.2f", secondNumber);
  return 0;
}

可以插入空格

让我们调用最长字符串
m
和另一个
n
的长度。在这个例子中,最长的字符串是“如果我的第二个数字是32.43,那么前面会是什么”

现在,长度最长的字符串不需要任何修改。但是,另一个字符串需要在句子后面但在数字之前添加
m-n
空格。所以,在“这是我的第一个数字”之后,但在“245.32”之前


注意:在固定宽度字体中,这将是对齐的。但是,在某些字体中,使用此方法对齐将无法正常工作,因为字符的宽度不是固定的。

您可以插入空格

让我们调用最长字符串
m
和另一个
n
的长度。在这个例子中,最长的字符串是“如果我的第二个数字是32.43,那么前面会是什么”

现在,长度最长的字符串不需要任何修改。但是,另一个字符串需要在句子后面但在数字之前添加
m-n
空格。所以,在“这是我的第一个数字”之后,但在“245.32”之前


注意:在固定宽度字体中,这将是对齐的。但是,在某些字体中,使用此方法对齐将无法正常工作,因为字符的宽度不固定。

格式化前导文本

int main(void) {
  double Number[] = { 245.3252, 32.4324 };
  const char *text[] = {"This is my first number:", 
                         "And what's gonna be in the front if my second number:"};

  // Find or set max width of text
  int width = max(strlen(text[0]), strlen(text[1]));

  // Calculate or set max width of numbers
  int maxnumwidth = 6;

  int i;
  for (int i= 0; i < 2; i++) {
    printf("%-*s %*.2f\n", width, text[i], maxnumwidth, Number[i]);
  }

  return 0;
}
int main(无效){
双倍数字[]={245.3252,32.4324};
const char*text[]={“这是我的第一个数字:”,
“如果我的第二个号码是:”};
//查找或设置文本的最大宽度
int width=max(strlen(文本[0]),strlen(文本[1]);
//计算或设置数字的最大宽度
int maxnumwidth=6;
int i;
对于(int i=0;i<2;i++){
printf(“%-*s%*.2f\n”,宽度,文本[i],最大宽度,数字[i]);
}
返回0;
}
%-*s

-
左对齐
*
从参数获取宽度。
s
String

%*.2f

*
从参数获取宽度。
.2
打印到小数点后两位。

f
float或double

格式化前导文本

int main(void) {
  double Number[] = { 245.3252, 32.4324 };
  const char *text[] = {"This is my first number:", 
                         "And what's gonna be in the front if my second number:"};

  // Find or set max width of text
  int width = max(strlen(text[0]), strlen(text[1]));

  // Calculate or set max width of numbers
  int maxnumwidth = 6;

  int i;
  for (int i= 0; i < 2; i++) {
    printf("%-*s %*.2f\n", width, text[i], maxnumwidth, Number[i]);
  }

  return 0;
}
int main(无效){
双倍数字[]={245.3252,32.4324};
const char*text[]={“这是我的第一个数字:”,
“如果我的第二个号码是:”};
//查找或设置文本的最大宽度
int width=max(strlen(文本[0]),strlen(文本[1]);
//计算或设置数字的最大宽度
int maxnumwidth=6;
int i;
对于(int i=0;i<2;i++){
printf(“%-*s%*.2f\n”,宽度,文本[i],最大宽度,数字[i]);
}
返回0;
}
%-*s

-
左对齐
*
从参数获取宽度。
s
String

%*.2f

*
从参数获取宽度。
.2
打印到小数点后两位。

f
float或double

那么,对于您的特定问题,请尝试以下方法:

printf(“这是我的第一个号码:\t\t\t%.2f\n”,第一个号码); printf(“如果我的第二个数字:%.2f”,第二个数字,前面会是什么)


\t\t\t(3次)+4个在%.2f

之前的空格好的,对于您的特定问题,请尝试以下方法:

printf(“这是我的第一个号码:\t\t\t%.2f\n”,第一个号码); printf(“如果我的第二个数字:%.2f”,第二个数字,前面会是什么)


\t\t\t(3次)+4个空格在%.2f

之前,我只是试图帮助用户解决一个特定问题。我不推荐这样做。我只是试图帮助用户解决一个特定的问题。我不推荐这个。