C언어/stdio.h

[C언어] fgets 함수 (stdio.h)

아무일도없었다 2022. 7. 26. 23:57

사용범위

Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수

기능

C언어 표준 함수로 FILE 로부터 데이터를 한줄씩 읽어서 문자열로 저장한다.

헤더

#include <stdio.h>

※ fgets 함수 사용시 stdio.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※


함수

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

파라미터

  • char* str
    • FILE* 로부터 읽은 데이터를 저장할 버퍼를 입력한다.
  • int num
    • 한번에 읽을 데이터의 최대 문자수를 입력한다. (NULL 문자를 포함한 숫자)
  • FILE* file
    • fopen 함수를 통해 얻은 FILE의 포인터를 입력한다.

반환값

성공시   fgets 를 통해 읽은 buffer인 str을 반환한다.
실패시   null 포인터를 반환한다.

 

< test.txt >

Hello fgets

 

<소스 코드>

#include <stdio.h>

#define MAX_BUF_SIZE 128

int main() {
    FILE* fp;
    char* ret = NULL;
    char buffer[MAX_BUF_SIZE] = {0,};

    fp = fopen("test.txt", "r");
    if (fp != NULL) {
        ret = fgets(buffer, MAX_BUF_SIZE - 1, fp);
        if (ret != NULL) {
            printf("%s\n", buffer);
            printf("%s\n", ret);
        } else {
            // fgets 함수 실패 !
        }
        fclose(fp);
    }
    return 0;
}

 

※ 실행 결과

Hello fgets
Hello fgets
반응형

'C언어 > stdio.h' 카테고리의 다른 글

[C언어] fclose 함수 (stdio.h)  (0) 2022.08.02
[C언어] fopen 함수 (stdio.h)  (1) 2022.08.01
[C언어] fputs 함수 (stdio.h)  (0) 2022.07.28
[C언어] scanf 함수 (stdio.h)  (0) 2022.07.24
[C언어] printf 함수 (stdio.h)  (0) 2022.07.24