В C програмиране, обработка вход и изход дейности е от съществено значение. Fgets() е една от многото функции, които са достъпни за вход . С помощта на тази стабилна функция разработчиците могат сигурно и прецизно да четат информация от даден поток. В тази статия ще разгледаме инс и аутове на fgets() , преминавайки през него синтаксис, приложение, примерен код , и очаквани резултати .
The функция fgets(). , съкращение от 'file get string' , често се използва за четене на низ от файлов поток или стандартен вход (stdin) . Той осигурява по-сигурен заместител на остарелите gets() функция , който е бил използван преди, но сега представлява проблем за сигурността. Функцията fgets() предлага средство за ограничаване на броя на прочетените знаци и ефективно обработва символите за нов ред.
произволно число в java
Синтаксисът за fgets() е както следва:
char *fgets(char *str, int size, FILE *stream);
Параметрите са разбити, както следва:
улица: Това е препратка към масива от символи (низ), който ще се използва за съхраняване на входа.
размер: Общият брой знаци (включително нулев знак '0' ), които могат да се четат.
поток: Посочващото устройство към входния файлов поток или stdin че 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(). , програмата иска от потребителя да въведе низ. След това, stdin се използва като входен поток , и fgets() се използва с вход като целеви низ, размер на (вход) и максимален размер за четене. След това програмата използва printf() за извеждане на въведения низ.
Fgets() функция може Прочети и спаси символът за нов ред 'н' ако се появи преди достигането на максималния размер. Това дава възможност да се разбере дали входният ред е бил прочетен изцяло или съкратен поради ограничения на пространството.
Пример:
Използвайки модифицирания кодов фрагмент, можете да използвате метод 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; }
Изход:
numpy сумиране
Enter a string: Hello World You entered: Hello World
Обяснение:
Дължината на подниза, съставен от знаци, които не са в предоставения набор от знаци, се определя от функция strcspn(). . В този случай, нулев знак '0' се използва за заместване на знака за нов ред след посочване 'н' като набор от знаци за търсене.
Заключение:
В заключение, четене входни низове от файлови потоци или стандартен вход с помощта на C метод fgets(). е надежден и сигурен. Това е полезен инструмент за обработка на въвеждане от потребителя по регулиран начин, защото ви позволява да изберете максимален размер за въвеждане и обработва знаци за нов ред.
Отхвърленото gets() функция се заменя с по-сигурното функция fgets(). , който коригира пропуски в сигурността, причинени от препълване на буфера . Той гарантира, че входният низ не става по-голям от позволеното, избягвайки потенциални проблеми с повреда на паметта.
Предоставеният примерен код показва как да използвате fgets() правилно, за да улови въведеното от потребителя и да премахне знака за нов ред, ако се появи. Той подчертава колко важно е да се вземат предвид входните ограничения и да се работи със знаци за нов ред, за да се гарантира точна обработка на низове.
Разработчиците могат да подобрят сигурността и устойчивостта на своите C програми с fgets() . Те могат да избегнат неочаквано поведение и потенциални пробиви в сигурността, предизвикани от големи входове, като определят максимален размер за вход.
Амбициозните C програмисти трябва да се запознаят с fgets() и неговите инструкции за използване, за да се гарантира сигурна и ефективна обработка на въвеждане. Разработчиците, които са наясно с тази функция, могат да създадат по-надежден и сигурен софтуер, който предпазва от уязвимости, свързани с въвеждането, които често се срещат.