본문 바로가기

Study_C, C++/홍정모의 따라하며 배우는 C언어

[홍정모의 따라하며 배우는 C언어] 8.6 입력 확인하기

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

 

홍정모의 따라하며 배우는 C언어 - 인프런 | 강의

'따배씨++'의 성원에 힘입어 새롭게 개발된 C 언어로 시작하는 프로그래밍 입문 강의입니다. '따배씨'와 함께 프로그래밍 인생을 업그레이드 해보세요., - 강의 소개 | 인프런...

www.inflearn.com