#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
我不知道输出的第一个零在哪里
我认为零在计算过程中与空格的作用相同,所以第一个零不会出现在我的输出中
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;
}