do{학습}while

c) fgets() 본문

C & C++/c언어 표준함수

c) fgets()

하이오야이 2024. 5. 28. 10:57

기능 요약

개행 문자(\n) 포함하여 표준 입력에서 문자열을 가져온다.

 

스트림에서 문자열을 받아서 (num - 1)개의 문자를 입력 받을 때 까지 혹은 개행 문자(\n) EOF(End_Of_File)에 도달할 때 까지 입력 받아 문자열을 저장

 

fgets()에는 커서가 존재해서 읽어드린 이후에 커서가 그 다음으로 이동해서 다음 문자열을 읽어들일 수 있다.

헤더파일

#include <stdio.h>  // C++ 에서는 <cstdio>

원형

char* fgets(char* str, int num, FILE* stream);

반환값

정상적으로 입력이 되었을 경우 읽어드린 값을 반환합니다.

 

만약 EOF 혹은 에러를 마주했을 경우 NULL을 반환합니다.

주의 사항

만약 num을 3으로 전달하고 개행 문제를 전달하고 입력하고 싶다면 하나의 문자만을 입력해야한다.

_ _ _ → 1 \n \0

이런 식으로 입력이 되기 때문이다.

예시 코드

#include <stdio.h>
#include <string.h>

int main() {
    char str[50];  // 버퍼 크기를 50으로 설정

    printf("문자열을 입력하세요: ");
    if (fgets(str, sizeof(str), stdin) != NULL) {
        // 개행 문자 제거
        size_t len = strlen(str);
        if (len > 0 && str[len - 1] == '\\n') {
            str[len - 1] = '\\0';
        }

        printf("입력한 문자열: %s\\n", str);
    } else {
        printf("입력 오류 또는 EOF.\\n");
    }

    return 0;
}

'C & C++ > c언어 표준함수' 카테고리의 다른 글

c) getchar()  (0) 2024.05.28
c) puts()  (0) 2024.05.28
c) memcmp()  (0) 2024.05.27
c) sscanf()  (0) 2024.05.27
c) sprintf()  (0) 2024.05.27