728x90
fgets 함수는 파일에서 문자열을 읽어들이는 함수입니다. 파일 포인터, 읽어들일 문자열 버퍼, 그리고 최대 읽을 문자 수를 인자로 받습니다. 문자열을 읽어들일 때 개행문자 ('\n') 까지 포함하여 읽어들이며, 지정된 최대 문자수에 도달하면 읽기를 중지합니다.
목차
1. fgets 함수의 구조
char *fgets (char *str, int num, FILE *stream);
"str" : 읽은 문자열을 저장할 버퍼의 포인터입니다.
"num" : 읽을 최대 문자 수입니다.
"stream" : 입력 스트림을 가리키는 파일 포인터입니다.
fgets 함수는 다음과 같이 동작합니다
1. stream에서 최대 n-1개의 문자를 읽어들입니다.
2. 나머지 하나의 문자는 null 문자(\0)를 추가합니다.
3. 개행 문자(\n)가 포함되어 있으면 그대로 유지합니다.
4. 읽어들인 문자열의 주소를 반환합니다.
2. fgets 함수의 특징
- 공백 문자를 포함한 문자열을 입력할 수 있습니다.
- 개행 문자 "\n" 까지 입력을 받습니다.
- 버퍼 오버플로우 방지를 위해 최대 입력 길이를 지정 가능합니다.
3. fgets 함수 사용 예시
표준 입력으로부터 문장려을 입력 받아 출력하는 간단한 예시 코드입니다.
#include <stdio.h>
int main(void)
{
char buffer[100];
printf("문자열을 입력하세요: ");
fgets(buffer, sizeof(buffer), stdin);
printf("입력된 문자열: %s", buffer);
return 0;
}
"stdin" : 키보드로부터의 입력을 받는 표준 입력 장치를 나타냅니다.
추가로 관련된 코드업 문제 포스팅 링크도 추가했습니다.
4. fgets 함수의 보안성
fgets 함수는 입력 받을 문자열의 최대 길이를 지정할 수 있기 때문에 "버퍼 오버플로우" 와 같은 보안 취약점을 방지할 수 있습니다.
728x90