logo

фгетс() функција у Ц

У Ц програмирању, руковање улазни и излаз активности су неопходне. Фгетс() је једна од многих функција које су доступне за улазни . Уз помоћ ове робусне функције, програмери могу безбедно и прецизно читати информације из датог тока. У овом чланку ћемо испитати инс и оутс оф фгетс() , прелазећи преко свог синтакса, апликација, узорак кода , и Очекивани резултати .

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' се користи за замену знака новог реда након навођења 'н' као скуп знакова за тражење.

Закључак:

У закључку, читање улазни низови из токова датотека или стандардног уноса помоћу Ц фгетс() метода је поуздан и сигуран. То је користан алат за обраду корисничког уноса на регулисан начин јер вам омогућава да изаберете максималну величину за унос и обрађује знакове новог реда.

Застарели гетс() функција се замењује сигурнијим функција фгетс(). , који поправља безбедносне пропусте изазване препуне бафера . Обезбеђује да улазни низ не постане већи од дозвољеног, избегавајући потенцијалне проблеме са оштећењем меморије.

Дати пример кода показује како се користи фгетс() исправно да ухвати кориснички унос и уклони знак новог реда ако се појави. Наглашава колико је кључно узети у обзир улазна ограничења и радити са знаковима новог реда како би се осигурала прецизна обрада стрингова.

Програмери могу побољшати сигурност и робусност својих Ц програма помоћу фгетс() . Они могу да избегну неочекивана понашања и потенцијалне повреде безбедности које изазивају велики улази дефинисањем максималне величине за унос.

Амбициозни Ц програмери би требало да се упознају са фгетс() и упутства за његово коришћење како би се обезбедило сигурно и ефикасно руковање уносом. Програмери који су свесни ове функције могу да произведу поузданији и сигурнији софтвер који штити од рањивости повезаних са уносом које се често сусрећу.

нат вс бед