반응형
보통 C언어에서 자주 사용되는 입력함수는 scanf이고 출력함수는 printf 일 것이다.
그러나 동일 기능을하는 함수가 있다. 입력 fgets 함수, 출력 fputs 함수이다.
앞에 f는 "file"을 뜻하고 뒤에 s는 "string"을 뜻한다.
즉, string타입을 갖고 쓰는 함수라고 볼 수 있다.
fputs( ) 함수 원형 : int fputs(const char* str, FILE* pFile)
fgets( ) 함수 원형 : int fgets(char* str, int* num, FILE* pFile)
아래에서 파일대신 stdout과 stdin을 사용했는데, 이는 출력으로 모니터(stdout)을 쓰고, 입력으로 키보드(stdin)를 사용함 의미
#include <stdio.h>
void ClearLineFromReadBuffer(void);
int main()
{
char perID[7]; // ex) 880808'\0' 총 NULL을 포함한 7개 배열 메모리 할당.
char name[10];
fputs("주민번호 앞 6자리: ", stdout); // 모니터에 출력 (stdout)
fgets(perID, sizeof(perID), stdin); // 최대 크기 7 byte를 키보드(stdin)로 부터 입력 받음.
/************/
ClearLineFromReadBuffer(); // 입력 버퍼를 비우기. 그냥 읽어들임. 반환없이.
/************/
fputs("이름 입력: ", stdout); // 모니터에 출력
fgets(name, sizeof(name), stdin); // 최대 크기 10 byte를 키보드로 부터 입력 받음.
printf("주민번호: %s \n", perID);
printf("이름: %s \n", name);
return 0;
}
void ClearLineFromReadBuffer(void)
{
while (getchar() != '\n'); // 문자열의 끝을 알리는 '엔터키'가 들어올때까지 계속 Read가 되어짐. 즉, 버퍼의 값을 사용하지 않고 그냥 버려짐.
}
/*
함수 원형: int fflush(FILE * stream);
성공시 0을 반환, 실패시 EOF 반환
int fflush(stdout); // 모니터로 출력 될 버퍼를 비우는 함수! (stdout: 모니터 출력을 의미)
// **버퍼를 비운다는 것은, 목적지로 빨리 보냄(다 출력시켜라 를 의미)
*/
유저로부터 입력을 받으면 '\n' (엔터키)가 올때까지 계속 버퍼를 비워버리는 함수
반응형
(결과 확인)
반응형
'C언어 \ C++' 카테고리의 다른 글
[C언어] C언어 배열(array) 반복문(for문)으로 모두 출력하기 (0) | 2022.01.23 |
---|---|
[C언어] C언어 야구게임 예제 코드 (0) | 2022.01.16 |
[C언어] C언어 함수에 배열을 input 인자로 전달하기 (0) | 2022.01.11 |
[C언어] C언어 배열 자동 할당, 배열 부분 할당, 배열 colcumn 값만 할당 (0) | 2022.01.10 |
[C언어] C언어 배열의 크기에 대해서, 배열 크기 보기 sizeof 함수 (배열 몇 개 들어있는지 확인) (1) | 2022.01.10 |