아래의 코드는 단순히 나이를 물어보고 간단한 printf를 출력합니다. 무엇을하려고하는 것은 000을 입력하고 000을 반환하고 0을 반환하지 마십시오. 내가 뭘합니까? 내가 제대로 질문을 이해하면strtol을 사용하고 2 개의 0 (00)을 입력 할 때, 단지 1 개의 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;
}
Google 'printf 형식 지정자' –
으로 저장하고 싶습니다. 000으로 변수. 인쇄 또는 하드 코드되지 않습니다. –
@ lemonsforyou, 그럼 당신은 문자열로 저장해야합니다. 그렇지 않으면 불가능합니다. 0은 3 또는 4가 아닌 단 하나의 0입니다. – HighPredator