본문 바로가기
코딩/C언어

C언어 fgets 함수

by zz! 2024. 5. 4.
728x90

fgets 함수는 파일에서 문자열을 읽어들이는 함수입니다. 파일 포인터, 읽어들일 문자열 버퍼, 그리고 최대 읽을 문자 수를 인자로 받습니다. 문자열을 읽어들일 때 개행문자 ('\n') 까지 포함하여 읽어들이며, 지정된 최대 문자수에 도달하면 읽기를 중지합니다.

 

C언어 fgets 함수

 

목차

1. fgets 함수의 구조

2. fgets 함수의 특징

3. fgets 함수 사용 예시

4. fgets 함수의 보안성

 

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" : 키보드로부터의 입력을 받는 표준 입력 장치를 나타냅니다. 

추가로 관련된 코드업 문제 포스팅 링크도 추가했습니다.

 

#1022 코드업 (CodeUp) 1022번 문제 풀이 [C언어 기초 100제]

안녕하세요. 오늘은 C언어 기초 100제 문제에서 1022번 문제를 풀어보겠습니다.공백 문자가 포함되어 있는 문장을 입력받고 그대로 출력하는 연습을 하는 문제입니다.  [기초-입출력]에 대해 잘

wsul.tistory.com

 

4. fgets 함수의 보안성

fgets 함수는 입력 받을 문자열의 최대 길이를 지정할 수 있기 때문에 "버퍼 오버플로우" 와 같은 보안 취약점을 방지할 수 있습니다. 

 

728x90