我需要在输入中保留任何前导零,所以我将数字作为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
答案 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