본문 바로가기
프로그래밍 언어/C,C++

C/C++ fgets() 문자열 읽기 함수

by pagehit 2021. 7. 4.
반응형
#include <stdio.h>
char *fgets(char *string, int n, FILE *stream);

 

fgets() 함수는 stream에서 문자열을 읽는다. 문자열을 읽을 때, 첫 번째 개행 문자를 포함하는 곳까지 읽거나, stream의 끝까지 읽거나, $n-1$개의 문자를 읽는다. 읽은 문자열을 string에 저장하고 끝에 \0을 추가한다. $n$이 1이면 빈 string이 된다.


매개변수

char *string : stream에서 읽은 문자열을 복사해 저장할 문자 배열에 대한 포인터

int n : string에 복사될 최대 문자 수

FILE *stream : FILE 객체에 대한 포인터, 인자로 stdin을 사용해 표준 입력(standard input)으로 부터 입력 받을 수 있다


반환값

함수 호출이 성공적으로 끝나면 string을 반환한다. end-of-file로 끝나면 eof indicator feof가 설정된다. 이때 반환되는 포인터는 널 포인터이며 string의 내용은 변하지 않고 그대로 존재한다.

읽을 때 에러가 발생하면 error indicator ferror가 설정되고 널 포인터가 반환되며, 이때에는 string이 가리키는 내용이 변할 수 있다.


코드 예시

#include <stdio.h>

int main(void)
{
    FILE *stream = fopen("mydir/myfile", "w");
    char line[256], *result;
    
    if ((result = fgets(line, 256, stream)) != NULL)
        printf("String is %s\n", result);

    if (fclose(stream))
        perror("fclose error");
}
반응형

댓글