c - 当使用strtol并输入2个零(00)时,它只输出一个零?

标签 c

下面的代码只是询问您的年龄并输出一个简单的 printf。我想做的是输入 000 并让它返回 000 而不仅仅是 0。我该怎么办?

#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("you are %03d years old.\n\n", input_num);

关于c - 当使用strtol并输入2个零(00)时,它只输出一个零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26405172/

相关文章:

c - 如何测量一段程序的用户/系统 cpu 时间?

在指针指向的地址处创建结构体

c - GCC 和 Makefile(一个函数的多个声明,即使只有一个?)

c - 寻找 1 和 2 的可能组合,总和为常量

c - 如何替换双向链表中的元素

c - 字符串中所有可能的字符组合

sql - 使用 db2 在 C 程序中嵌入 SQL

python - 在 Windows 上构建 64 位 C Python 扩展

c - 8 位微 Controller 的 64 位整数实现

在 C 中编译数据流?