본문 바로가기
⌨️CS-STUDY/C

[C][header][stdio.h] fgets

by 미르의 블로그 2023. 1. 23.
728x90
반응형

fgets

함수 원형
#include <stdio.h>  // C++ 의 경우 <cstdio>
char* fgets(char* str, int num, FILE* stream);
특징

1. 개행(=newline)(='\n') 혹은 파일끝(=EOF)을 만날 때 까지, 해당 stream의 buffer에서 문자열을 읽어들인다.

(개행(=newline)(='\n') 혹은 파일끝(=EOF)을 만나면, 입력이 종료된다.)

2. 문자열을 읽어들인 후, 문자열 끝에 NULL(='\0')값이 자동으로 추가된다.

3. fgets는 gets와 달리, 개행(=newline)(='\n')이 포함된채 저장된다.

 

반환값

[성공적으로 읽어 들였을 경우.]

str을 반환한다. 즉, 반환값은 인자로 전달받은 메모리의 주소이다.

[파일 끝에서 아무런 문자를 읽어 들이지 않았을 경우. & 오류가 발생했을 경우.]

NULL(='\0') 포인터를 반환한다. (str의 내용은 변하지 않는다.)

 

fgets를 통해서 데이터 입력을 받는 경우, 뒤에 개행문자를 제거하는 방법
#include <stdio.h> //fgets()
#include <string.h> //strlen()

fgets(str, strlen(str), stdin);
if(str[strlen(str) - 1] == '\n')
	str[strlen(str) - 1] = '\0';

 

728x90
반응형

'⌨️CS-STUDY > C' 카테고리의 다른 글

[C][Macro] min max  (0) 2023.02.21
[C][header][stdio.h] printf  (0) 2023.01.31
[C][header][stdio.h] scanf  (0) 2023.01.29
[C][header][limits.h]  (0) 2023.01.23