728x90
8.6 입력 확인하기
- 사용자가 입력한 데이터가 내가 필요로 하는 데이터인지, 즉 의도한대로 입력됐는지 확인하는 프로그램
#include <stdio.h>
#pragma warning (disable:4996)
main()
{
printf("Please input an integer and press enter.\n");
long input; // 큰 정수를 받기 위해 long type 사용
char c;
while (scanf("%ld", &input) != 1) { // long 숫자가 하나만 들어오면 while문으로 진입하지 않음
printf("Your input - ");
while ((c = getchar()) != '\n')
putchar(c); // input left in buffer : 입력을 제대로 받지 못했다면 사용자의
//입력이 버퍼에 남아있음. putchar로 남아있는 내용들을 출력해서 비워냄
printf(" - is not an integer. Please try again.\n");
}
printf("Your input %ld is an integer. Thank you.\n", input);
}
Output :
Please input an integer and press enter.
(abc 입력)
Your input - abc - is not an integer. Please try again.
(100 입력)
Your input 100 is an integer. Thank you.
- 1 ~ 100 사이의 숫자만 받는 프로그램
#include <stdio.h>
#pragma warning (disable:4996)
long get_long();
main()
{
long num;
while (1) {
printf("Please input an integer (1 ~ 100).\n");
num = get_long(); // 함수를 통해 사용자로부터 long type 정수 하나를 입력받아옴
if (num > 1 && num < 100) {
break;
}
else
printf("Wrong input. Please try again.\n");
}
printf("Your input %d is between 1 and 100. Thank you.\n", num);
}
long get_long() {
long input;
char c;
while (scanf("%ld", &input) != 1) {
while ((c = getchar()) != '\n')
putchar(c);
printf(" - is not an integer. Please try again.\n");
}
return input;
}
Output :
Please input an integer (1 ~ 100).
(1000 입력)
Wrong input. Please try again.
Please input an integer (1 ~ 100).
(4 입력)
Your input 4 is between 1 and 100. Thank you.
- 사용자를 배려하는 프로그램을 만드는 것은 프로그래머의 중요한 능력 중 하나
https://www.inflearn.com/course/following-c/dashboard
'Study_C, C++ > 홍정모의 따라하며 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 8.8 메뉴 만들기 예제 (0) | 2022.03.19 |
---|---|
[홍정모의 따라하며 배우는 C언어] 8.7 입력 스트림과 숫자 (0) | 2022.03.07 |
[홍정모의 따라하며 배우는 C언어] 8.4 사용자 인터페이스는 친절하게 ~ 8.5 숫자와 문자를 섞어서 입력받기 (0) | 2022.03.03 |
[홍정모의 따라하며 배우는 C언어] 8.1 입출력 버퍼 ~ 8.3 입출력 방향 재지정 (0) | 2022.02.08 |
[홍정모의 따라하며 배우는 C언어] 7.11 최대, 최소, 평균 구하기 예제 ~ 7.13 goto를 피하는 방법 (0) | 2022.02.05 |