반응형
#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");
}
반응형
댓글