如何在输出的第一个位置打印零

问题描述 投票:0回答:1
#include <stdio.h>

int main(void) {
  int Phone_number1,Phone_number2,Phone_number3 ; 
  printf("Enter phone number [(xxx) xxx-xxxx]: ");
  scanf("(%d) %d-%d" , &Phone_number1 , &Phone_number2 , &Phone_number3);
  
   printf("you entered: %d.%d.%d ",Phone_number1,Phone_number2,Phone_number3 );
  return 0;
}
Enter phone number [(xxx) xxx-xxxx]: (010) 7568-5230 // this was my input

you entered: 10.7568.5230 // this was my out put

display user phone number 
 //my code

但我想像这样打印 010.7568.5230

我不知道输出的第一个零在哪里

我认为零在计算过程中与空格的作用相同,所以第一个零不会出现在我的输出中

c printing whitespace zero
1个回答
0
投票
C中的

printf
有格式化规则。 Click_here 参考关于详细了解
printf
。在这里,我将简要概述一下您的问题。

%03d %04d
”是
printf
中的格式将指定如何打印您的电话号码。

  • d
    代表十进制整数(不是双倍!),所以它说会有 没有浮点数或类似的东西,只是一个普通的整数。
  • 3
    显示打印的数字有多少位。更确切地说, 该号码至少需要 3 位数字:010 将是 10,但加上 3 将在开头放置零。 (类似
    %04d
  • 的情况
  • 0
    3 表示前导空格应替换为零。

检查 sprintf 的类似解释。

修改后的代码:

#include <stdio.h>

int main(void) {
  int Phone_number1,Phone_number2,Phone_number3 ; 
  printf("Enter phone number [(xxx) xxx-xxxx]: ");
  scanf("(%d) %d-%d" , &Phone_number1 , &Phone_number2 , &Phone_number3);
  printf("you entered: %03d.%04d.%04d ",Phone_number1,Phone_number2,Phone_number3 );
  return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.