U C programiranju, rukovanje ulazni i izlaz aktivnosti je bitno. Fgets() je jedna od mnogih funkcija koje su dostupne za ulazni . Uz pomoć ove robusne funkcije, programeri mogu sigurno i precizno čitati informacije iz određenog toka. U ovom ćemo članku ispitati ins i izlasci od fgets() , prelazeći preko svog sintaksa, aplikacija, primjer koda , i očekivani rezultati .
The funkcija fgets(). , skraćenica za 'file get string' , često se koristi za čitanje niza iz toka datoteke ili standardni unos (stdin) . Pruža sigurniju zamjenu za zastarjele funkcija gets(). , koji se prije koristio, ali sada predstavlja sigurnosni problem. Funkcija fgets() nudi sredstva za ograničavanje broja znakova za čitanje i učinkovito obrađuje znakove za novi red.
Sintaksa za fgets() je sljedeća:
char *fgets(char *str, int size, FILE *stream);
Parametri su raščlanjeni na sljedeći način:
matrice u c programiranju
str: To je referenca na niz znakova (string) koji će se koristiti za pohranjivanje unosa.
veličina: Ukupan broj znakova (uključujući nulti znak '0' ) koji se može čitati.
tok: Uređaj za pokazivanje na ulazni tok datoteke ili stdin da fgets() čitat će iz.
Kako bismo bolje shvatili kako fgets() funkcionira, pogledajmo primjer:
Primjer:
#include int main() { char input[100]; printf('Enter a string: '); fgets(input, sizeof(input), stdin); printf('You entered: %s', input); return 0; }
Izlaz:
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:
Obrazloženje:
U gornjem primjeru započinjemo uključivanjem odgovarajuće datoteke zaglavlja, 'stdio.h' . Nakon toga, ulazni niz se definira kao unos niza znakova veličine 100.
virtualna memorija
Korištenje funkcija printf(). , program traži od korisnika da unese niz. nakon toga, stdin koristi se kao ulazni tok , i fgets() koristi se s unosom kao odredišni niz, sizeof(unos) , i najveća veličina za čitanje. Nakon toga program koristi printf() za ispis unesenog niza.
Fgets() funkcija može čitati i uštedjeti znak novog retka 'n' ako se pojavi prije nego što se dosegne najveća veličina. Omogućuje da se utvrdi je li ulazni red pročitan u cijelosti ili je skraćen zbog ograničenja prostora.
Primjer:
Koristeći modificirani isječak koda, možete koristiti metoda strcspn(). do izbrisati the nova linija znak iz ulaznog niza:
#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; }
Izlaz:
Enter a string: Hello World You entered: Hello World
Obrazloženje:
Duljina podniza sastavljenog od znakova koji nisu u isporučenom skupu znakova određena je funkcija strcspn(). . U ovom slučaju, nulti znak '0' koristi se za zamjenu znaka novog retka nakon navođenja 'n' kao skup znakova za traženje.
Zaključak:
Zaključno, čitanje ulazni nizovi iz tokova datoteka ili standardnog unosa koristeći C metoda fgets(). je pouzdan i siguran. To je koristan alat za obradu korisničkog unosa na regulirani način jer vam omogućuje odabir maksimalne veličine za unos i obrađuje znakove za novi red.
algoritmi binarno pretraživanje
Zastarjeli funkcija gets(). zamjenjuje se sigurnijim funkcija fgets(). , koji popravlja sigurnosne nedostatke uzrokovane međuspremnik prelijeva . Osigurava da ulazni niz ne postane veći od onoga što je dopušteno, izbjegavajući moguće probleme s oštećenjem memorije.
Navedeni primjer koda pokazuje kako se koristi fgets() ispravno za hvatanje korisničkog unosa i uklanjanje znaka novog retka ako se pojavi. Naglašava koliko je ključno uzeti u obzir ograničenja unosa i nositi se sa znakovima za novi red kako bi se osigurala točna obrada niza.
Programeri mogu poboljšati sigurnost i robusnost svojih C programa pomoću fgets() . Oni mogu izbjeći neočekivana ponašanja i potencijalna kršenja sigurnosti uzrokovana velikim unosima definiranjem maksimalne veličine za unos.
Ambiciozni C programeri trebali bi se upoznati s fgets() i njegove upute za korištenje kako bi se osiguralo sigurno i učinkovito rukovanje unosom. Programeri koji su svjesni ove funkcije mogu proizvesti pouzdaniji i sigurniji softver koji štiti od ranjivosti povezanih s unosom koje se često susreću.