У Ц програмирању, руковање улазни и излаз активности су неопходне. Фгетс() је једна од многих функција које су доступне за улазни . Уз помоћ ове робусне функције, програмери могу безбедно и прецизно читати информације из датог тока. У овом чланку ћемо испитати инс и оутс оф фгетс() , прелазећи преко свог синтакса, апликација, узорак кода , и Очекивани резултати .
10 од 50.00
Тхе функција фгетс(). , кратак за 'филе гет стринг' , се често користи за читање стринга из тока датотека или стандардни унос (стдин) . Пружа сигурнију замену за застареле гетс() функција , који се раније користио, али сада представља безбедносну забринутост. Функција фгетс() нуди средство за ограничавање броја прочитаних знакова и ефикасно обрађује знакове новог реда.
Синтакса за фгетс() је следећа:
char *fgets(char *str, int size, FILE *stream);
Параметри су подељени на следећи начин:
стр: То је референца на низ знакова (стринг) који ће се користити за чување уноса.
величина: Укупан број знакова (укључујући нулти знак '0' ) који се може прочитати.
ток: Уређај који показује на ток улазне датотеке или стдин то фгетс() ће читати из.
Да бисмо боље разумели како фгетс() функционише, погледајмо пример:
Пример:
#include int main() { char input[100]; printf('Enter a string: '); fgets(input, sizeof(input), stdin); printf('You entered: %s', input); return 0; }
Излаз:
рј12 против рј11
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:
Објашњење:
У горњем примеру, почињемо са уградњом одговарајуће датотеке заглавља, 'стдио.х' . Након тога, улазни низ се дефинише као унос низа знакова величине 100.
Користећи функција принтф(). , програм тражи од корисника да унесе стринг. Након тога, стдин се користи као улазни ток , и фгетс() користи се са уносом као одредишни стринг, сизеоф(инпут) , и максималну величину за читање. Након тога, програм користи принтф() за излаз унетог низа.
Фгетс() функција може читати и сачувати знак новог реда 'н' ако се појави пре него што је достигнута максимална величина. Омогућава да се утврди да ли је улазна линија прочитана у потпуности или скраћена због ограничења простора.
Пример:
Користећи измењени исечак кода, можете користити стрцспн() метода до избрисати тхе Нова линија знак из улазног низа:
#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
Објашњење:
Дужина подниза састављеног од знакова који нису у испорученом скупу знакова је одређена помоћу функција стрцспн(). . У овом случају, нулти знак '0' се користи за замену знака новог реда након навођења 'н' као скуп знакова за тражење.
Закључак:
У закључку, читање улазни низови из токова датотека или стандардног уноса помоћу Ц фгетс() метода је поуздан и сигуран. То је користан алат за обраду корисничког уноса на регулисан начин јер вам омогућава да изаберете максималну величину за унос и обрађује знакове новог реда.
Застарели гетс() функција се замењује сигурнијим функција фгетс(). , који поправља безбедносне пропусте изазване препуне бафера . Обезбеђује да улазни низ не постане већи од дозвољеног, избегавајући потенцијалне проблеме са оштећењем меморије.
Дати пример кода показује како се користи фгетс() исправно да ухвати кориснички унос и уклони знак новог реда ако се појави. Наглашава колико је кључно узети у обзир улазна ограничења и радити са знаковима новог реда како би се осигурала прецизна обрада стрингова.
Програмери могу побољшати сигурност и робусност својих Ц програма помоћу фгетс() . Они могу да избегну неочекивана понашања и потенцијалне повреде безбедности које изазивају велики улази дефинисањем максималне величине за унос.
Амбициозни Ц програмери би требало да се упознају са фгетс() и упутства за његово коришћење како би се обезбедило сигурно и ефикасно руковање уносом. Програмери који су свесни ове функције могу да произведу поузданији и сигурнији софтвер који штити од рањивости повезаних са уносом које се често сусрећу.
нат вс бед