输入数字(可能带有前导零)但输出它们没有前导零

时间:2016-04-10 17:34:16

标签: c

我需要在输入中保留任何前导零,所以我将数字作为char s,然后使用ctoi()函数将它们转换回整数,如下代码所示: / p>

#include<stdio.h> 

#define ctoi(a)  a-'0'

int main() {
    int n;
    char ch;
    scanf("%c",&n);
    ch=ctoi(n);
    printf("%d",n);
}

但是那段代码不起作用。有什么问题?

Input:

001
0123
78
000123

Expected Output:

1
123
78
123

But I got:

1
1
7
1

1 个答案:

答案 0 :(得分:0)

将数字存储为整数时,只存储实际数字,而不是用于存储该数字的格式。如果要保留格式,则需要将其存储为字符串或其他一些存储原始格式的方法。

int n = 10;  // only stores a number in memory
char text[10] = "00010"; // stores any text, but can not be used for number arithmetic as stored here