표준 입력함수란?
: 표준 입력 함수란 표준입력스트림(stdin)으로부터 데이터를 입력 받아오는 함수를 뜻합니다.
표준 입력함수의 종류
1) int scanf(const char*, int, char, double, str) *str은 배열 명
- 입력값 : 문자열 상수, 정수, 문자, 실수, 여백없는 문자열 변수)
- 리턴값 : (정상입력시)성공적으로 입력받은 데이터의 개수, (실패시) EOF(-1)
ex) res = scanf("%d\n", &num);
2) int getchar() : 문자전용 입력함수
- 입력값 : space, tab, enter문자를 포함한 모든 문자 입력 가능
- 리턴값 : (정상입력시) 성공적으로 입력 받은 문자의 아스키코드, (실패시) EOF(-1)
ex) res = getchar();
3) char* fget(char*, int, FILE *) : 문자열 입력함수
- 입력값 : 마지막으로 전달받은 stdin입력버퍼에 여백이 있는 문자열 입력
* 입력 종료조건으로 입력해준(엔터)를 개행문자(\n)로 입력받아옴(불필요시 제거 사용 필요)
- 리턴값 : (정상 입력시)성공적으로 입력받은 문자열 버퍼 내 저장처의 주소/ (실패 시) Null Pointer(0번지)
ex) fgets(str, sizeof(str), stdin); *str은 배열명
- 표준 입출력 함수 예제
#include<stdio.h>
#pragma warning (disable : 4996)
//점수가 5번 입력되면 평균값을 구하는 프로그램을 만드시오.
//만약 문자가 입력되면 경고문을 띄우고 입력받은 문자를 지우고 정상 입력값을 다시 입력받으세요
int main() {
int count = 1;
int sum = 0;
int num;
void myflush();
while (count <= 5) {
printf("정수 입력 (%d)번째", count);
scanf("%d", &num); //scanf 할 때는 입력대상체의 주소를 입력받아서 하나씩 읽어들여
if (getchar() == '\n') {//정상입력함수이면 다 입력되어서 입력버퍼에 남자있는 숫자가 개행문자외에는 없어
printf("num = %d\n", num); //입력대상체에 입력된 값을 출력해
sum += num;
count++;
}
else {
printf("정상입력값을 다시 입력하시오");
myflush();
}
}
printf("%d\n", sum);
printf("%d\n", count - 1);
printf("%d\n", sum / (count - 1));
return 0;
}
void myflush() {
while (getchar() != '\n') { //버퍼에 남아있는 문자가 개행문자일때까지 읽어내서 버퍼를 비워
;
}
}
'C언어' 카테고리의 다른 글
08. C언어_형식 변환 문자 (0) | 2024.05.15 |
---|---|
06. C언어_포인터 변수 연산자, 주소 연산자 (0) | 2024.05.15 |
01. C언어_컴퓨터의 메모리 구조 (0) | 2024.05.15 |
03. C언어_동적 메모리 할당(1차원 배열) (0) | 2024.05.15 |
04. C언어_동적 메모리 할당 (2차원 배열) (0) | 2024.05.15 |