본문 바로가기
language/C

입력함수

by abstract.jiin 2022. 9. 5.
  1. scanf()
  2. while(getchar() !='\n')
  3. 예제

1. scanf() 

 

scanf() : 입력 함수 
프로그램이 동작하고 있는 중간에 데이터를 입력하여 
프로그램에 입력한 데이터를 전달 

scanf("서식문자", 변수주소);
scanf_s("서식문자", 변수주소, 허용크기);

*허용 크기는 문자열을 입력 받을 때 사용 (byte단위)

 

    /*정수 입력*/
    
int su;
printf("숫자 입력: ");			
scanf_s("%d", &su);			//int형 변수는 4byte 고정이기 때문에 허용크기 생략
printf("su : %d\n", su);

	/*실수 입력*/

float f1;					//float : 4byte 실수, 7자리 까지
double f2;					//double : 8byte 실수, 15~16자리 까지

printf("실수 입력:");		
scanf_s("%f", &f1);			//1.111
printf("실수 입력:");
scanf_s("%lf", &f2);		//2.345		-> double형 변수 자료를 입력 받을 때 %lf 사용 long float
printf("f1 : %f\n", f1);	//f1 : 1.111000
printf("f2 : %f\n", f2);	//f2 : 2.345000

	/*1byte 문자 입력*/
    
char c1, c2;
printf("문자1 입력 : ");
scanf_s("% c", &c1);
printf("문자1 : %c\n", c1);

while (getchar() != '\n');

printf("문자2 입력 :");
c2 = getchar();		//getchar() 함수는 단일 문자 입력 함수
printf("문자 2 ");
putchar(c2);		//getchar() 함수는 단일 문자 출력 함수
puts("");			//printf("\n");

 

2. while (getchar() != '\n') 

입력버퍼에 남아있던 엔터를 getchar()에 넣어, 입력 버퍼를 지우는 효과가 있다. 

 

	/*문자열 입력*/
    
//문자열 입력에서는 scanf_s 함수 사용할 때 변수명 앞에 & 기호 사용 X
char st1[10], st2[10];

printf("문자열1 입력: ");
scanf_s("%s", st1, sizeof(st1));
printf("st1 : %s\n", st1);

while (getchar() != '\n');
	
printf("문자열2 입력: ");
gets_s(st2, sizeof(st2));
puts(st2);

 

 

 

gets_s : 문자열 입력 시 사용

마지막 \n 자동 제거

puts_s : 문자열 출력 함수

마지막에 \n 자동 사용

 

char sp[10];
printf("공백문자 입력\n");
printf("스페이스바 누르고 엔터 눌러주세요 :");
scanf_s("%[^\n]", sp, sizeof(sp));
printf("sp: test%sword\n", sp);

 

3. 예제 

int age;
double hei;
char name[10], addr[100], mf;

printf("이름 입력: "); gets_s(name, sizeof(name));
printf("나이 입력: "); scanf_s("%d", &age);
	
while (getchar() != '\n');


printf("주소 입력: "); gets_s(addr, sizeof(addr));
printf("성별 입력: "); mf = getchar();  
printf("키 입력: "); scanf_s("%lf",&hei);

puts("\n*회원정보*");
printf("이름\t: %s\n나이\t: %d\n주소\t: %s\n성별\t: %c\n키\t: %.2fcm\n", name, age, addr, mf, hei);
	
}

 

'language > C' 카테고리의 다른 글

enum과 switch문  (0) 2022.09.07
조건 제어문  (0) 2022.09.05
연산자 II  (0) 2022.09.05
연산자  (0) 2022.09.05
형변환  (0) 2022.09.04