下面的代码只是要求你的年龄,并输出一个简单的printf。我试图做的是输入000,并让它返回000而不仅仅是0.我该怎么做?当使用strtol并输入2个零(00)时,它只返回一个零点?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LINE_LEN 80
#define EXTRA_SPACES 2
int main(void)
{
char line[LINE_LEN + EXTRA_SPACES];
char * end;
int input_num;
/* get user input */
printf("Please enter your age: ");
fgets(line, LINE_LEN+EXTRA_SPACES, stdin);
/* check for buffer overflow */
if(line[strlen(line)-1]!='\n')
{
printf("Error: buffer overflow\n\n");
return EXIT_FAILURE;
}
/* remove newline */
line[strlen(line)-1]=0;
/* retrieve number */
input_num = strtol(line, &end, 0);
if(*end)
{
printf("Error: data entered was not numeric.\n\n");
return EXIT_FAILURE;
}
printf("you are %d years old.\n\n", input_num);
return EXIT_SUCCESS;
}
谷歌'printf格式说明符' – 2014-10-16 13:06:31
但我希望它被保存在一个变量为000.不只是打印或硬编码。 – 2014-10-16 13:09:57
@lemonsforyou,那么你需要将它存储为一个字符串。否则,这是不可能的。零是唯一的一个零,而不是三个或四个。 – HighPredator 2014-10-16 13:12:45