logo

C의 fgets() 함수

C 프로그래밍에서는 처리 입력 그리고 산출 활동이 필수적입니다. Fgets() 사용할 수 있는 많은 기능 중 하나입니다. 입력 . 이 강력한 기능의 도움으로 개발자는 주어진 스트림에서 정보를 안전하고 정확하게 읽을 수 있습니다. 이번 글에서는 그리고 야당 ~의 fgets() , 그 내용을 살펴보겠습니다 구문, 애플리케이션, 샘플 코드 , 그리고 예상되는 결과 .

그만큼 fgets() 함수 , 약어 '파일 문자열 가져오기' , 파일 스트림에서 문자열을 읽는 데 자주 사용됩니다. 표준 입력(stdin) . 더 이상 사용되지 않는 것보다 안전한 대체품을 제공합니다. get() 함수 , 이전에는 사용되었지만 현재는 보안 문제가 있습니다. 함수 fgets() 읽는 문자 수를 제한하고 개행 문자를 효과적으로 처리하는 수단을 제공합니다.

fgets()의 구문은 다음과 같습니다.

 char *fgets(char *str, int size, FILE *stream); 

매개변수는 다음과 같이 분류됩니다.

str: 입력을 저장하는 데 사용될 문자 배열(문자열)에 대한 참조입니다.

크기: 총 문자 수( 널 문자 '0' ) 읽을 수 있습니다.

개울: 입력 파일 스트림에 대한 포인팅 장치 또는 표준입력 저것 fgets() 에서 읽을 것입니다.

fgets()가 어떻게 작동하는지 더 잘 이해하기 위해 예를 살펴보겠습니다.

예:

 #include int main() { char input[100]; printf('Enter a string: '); fgets(input, sizeof(input), stdin); printf('You entered: %s', input); return 0; } 

산출:

 Enter a string: Hello, World! You entered: Hello, World! Enter a string: This is a very long string that exceeds the limit of the input buffer. You entered: This is a very long string that exceeds the limit of the input buffer. If a user types an empty text by simply pressing the Enter key: Enter a string: You entered: 

설명:

위의 예에서는 적절한 헤더 파일을 통합하는 것으로 시작합니다. 'stdio.h' . 이후 입력 문자열은 크기 100의 문자 배열 입력으로 정의됩니다.

사용 printf() 함수 , 프로그램은 사용자에게 문자열을 입력하도록 요청합니다. 이후, 표준입력 로 사용됩니다 입력 스트림 , 그리고 fgets() 입력을 대상 문자열로 사용합니다. 크기(입력) 및 읽을 수 있는 최대 크기입니다. 그 후, 프로그램은 다음을 사용합니다. 프린트프() 입력된 문자열을 출력합니다.

Fgets() 기능은 할 수 있다 읽다 그리고 구하다 개행 문자 'N' 최대 크기에 도달하기 전에 나타나는 경우. 이를 통해 입력 줄이 완전히 읽혔는지 아니면 공간 제약으로 인해 잘렸는지 알 수 있습니다.

예:

수정된 코드 조각을 사용하면 strcspn() 메서드 에게 삭제 그만큼 개행 입력 문자열의 문자:

 #include #include int main() { char input[100]; printf('Enter a string: '); fgets(input, sizeof(input), stdin); input[strcspn(input, '
')] = ''; // Remove the newline character printf('You entered: %s', input); return 0; } 

산출:

 Enter a string: Hello World You entered: Hello World 

설명:

제공된 문자 세트에 없는 문자로 구성된 부분 문자열의 길이는 다음과 같이 결정됩니다. strcspn() 함수 . 이 경우, 널 문자 '0' 지정한 후 개행 문자를 대체하는 데 사용됩니다. 'N' 검색할 문자 집합으로 사용됩니다.

결론:

결론적으로 읽어보면 입력 문자열 C를 사용하여 파일 스트림 또는 표준 입력에서 fgets() 메서드 신뢰할 수 있고 안전합니다. 입력의 최대 크기를 선택할 수 있고 개행 문자를 처리할 수 있으므로 규제된 방식으로 사용자 입력을 처리하는 데 유용한 도구입니다.

더 이상 사용되지 않는 get() 함수 보다 안전한 것으로 대체됩니다. fgets() 함수 , 이로 인한 보안 결함을 수정합니다. 버퍼 오버플로 . 입력 문자열이 허용된 것보다 커지지 않도록 하여 잠재적인 메모리 손상 문제를 방지합니다.

제공된 예제 코드는 사용 방법을 보여줍니다. fgets() 사용자 입력을 올바르게 캡처하고 개행 문자가 나타나면 제거합니다. 정확한 문자열 처리를 보장하기 위해 입력 제약 조건을 고려하고 개행 문자를 처리하는 것이 얼마나 중요한지 강조합니다.

개발자는 다음을 통해 C 프로그램의 보안과 견고성을 향상할 수 있습니다. fgets() . 입력의 최대 크기를 정의하여 대규모 입력으로 인해 발생하는 예상치 못한 동작과 잠재적인 보안 위반을 방지할 수 있습니다.

C 프로그래머 지망생은 다음 사항에 익숙해져야 합니다. fgets() 안전하고 효과적인 입력 처리를 보장하기 위한 사용 지침. 이 기능을 알고 있는 개발자는 자주 발생하는 입력 관련 취약점으로부터 보호하는 보다 신뢰할 수 있고 안전한 소프트웨어를 생성할 수 있습니다.

Python 파일에 json을 작성합니다.