fgets
|
헤더 파일에 정의됨
<stdio.h>
|
||
|
char
*
fgets
(
char
*
str,
int
count,
FILE
*
stream
)
;
|
(C99 이전) | |
|
char
*
fgets
(
char
*
restrict
str,
int
count,
FILE
*
restrict
stream
)
;
|
(C99 이후) | |
주어진 파일 스트림에서 최대 count - 1 개의 문자를 읽어서 str 가 가리키는 문자 배열에 저장합니다. 파싱은 개행 문자를 발견한 경우(이때 str 에는 해당 개행 문자가 포함됨) 또는 파일 끝에 도달한 경우 중단됩니다. 바이트가 읽히고 오류가 발생하지 않으면, str 에 기록된 마지막 문자 바로 다음 위치에 null 문자를 씁니다.
목차 |
매개변수
| str | - | char 배열의 요소를 가리키는 포인터 |
| count | - | 최대 작성 문자 수 (일반적으로 str 의 길이) |
| stream | - | 데이터를 읽어올 파일 스트림 |
반환값
str 성공 시, 실패 시 null 포인터.
파일 끝 조건이 발생하면, eof 표시자를 stream 에 설정합니다 ( feof() 참조). 이는 바이트를 전혀 읽지 못하게 하는 경우에만 실패로 간주되며, 이 경우 널 포인터가 반환되고 str 이 가리키는 배열의 내용은 변경되지 않습니다 (즉, 첫 번째 바이트가 널 문자로 덮어쓰여지지 않습니다).
만약 실패가 다른 오류로 인해 발생한 경우, error 지시자를 설정합니다 ( ferror() 참조). stream 에 대해. str 이 가리키는 배열의 내용은 불확실합니다 (널 종료되지 않았을 수도 있습니다).
참고 사항
POSIX additionally requires that fgets sets errno if a read error occurs.
표준 명세서는 명확하지 않지만 count <= 1 인 경우, 일반적인 구현체들은
- 만약 count < 1 이면, 아무 작업도 수행하지 않고 오류를 보고합니다,
- 만약 count == 1 이면,
-
- 일부 구현체는 아무 작업도 수행하지 않고 오류를 보고합니다,
- 다른 구현체는 아무것도 읽지 않고 str [ 0 ] 에 0을 저장하고 성공을 보고합니다.
예제
#include <stdio.h> #include <stdlib.h> int main(void) { FILE* tmpf = tmpfile(); fputs("Alan Turing\n", tmpf); fputs("John von Neumann\n", tmpf); fputs("Alonzo Church\n", tmpf); rewind(tmpf); char buf[8]; while (fgets(buf, sizeof buf, tmpf) != NULL) printf("\"%s\"\n", buf); if (feof(tmpf)) puts("End of file reached"); }
출력:
"Alan Tu" "ring " "John vo" "n Neuma" "nn " "Alonzo " "Church " End of file reached
참고문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.21.7.2 fgets 함수 (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.21.7.2 fgets 함수 (p: 241)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.21.7.2 fgets 함수 (p: 331)
- C99 표준 (ISO/IEC 9899:1999):
-
- 7.19.7.2 fgets 함수 (p: 296)
- C89/C90 표준 (ISO/IEC 9899:1990):
-
- 4.9.7.2 fgets 함수
참고 항목
|
(C11)
(C11)
(C11)
|
표준 입력, 파일 스트림 또는 버퍼로부터 형식화된 입력을 읽음
(함수) |
|
(C11에서 제거됨)
(C11)
|
표준 입력으로부터 문자 문자열을 읽음
(함수) |
|
파일 스트림에 문자 문자열을 씀
(함수) |
|
|
(동적 메모리 TR)
|
구분자/줄 끝까지 스트림에서 자동으로 크기가 조정되는 버퍼로 읽음
(함수) |
|
C++ documentation
for
fgets
|
|