Za branje vrednosti niza s presledki lahko uporabimo gets() ali fgets() v programskem jeziku C. Tukaj bomo videli, kakšna je razlika med gets() in fgets().
fgets()
Funkcija fgets() prebere vrstico iz določenega toka in jo shrani v niz, na katerega kaže str. Ustavi se, ko so prebrani (n-1) znaki, znak za novo vrstico ali ko je dosežen konec datoteke, kar nastopi prej.
Sintaksa
char * fgets (char * str , int n , FILE * stream );>
Parametri
- str: Kazalec na niz znakov, kamor se kopira prebrani niz. n: največje število znakov, ki jih je treba kopirati v str (vključno z zaključnim ničelnim znakom). *tok: kazalec na objekt FILE, ki identificira vhodni tok.
Opomba: stdin lahko uporabite kot argument za branje iz standardnega vnosa.
Povratna vrednost
- Funkcija fgets() vrne kazalec na niz, kjer je shranjen vnos.
Lastnosti fgets()
- Sledi nekaterim parametrom, kot so največja dolžina, medpomnilnik in referenca vhodne naprave.
- je varno uporabiti, ker preveri vezavo matrike.
- Nadaljuje z branjem, dokler ne naleti na znak nove vrstice ali največjo omejitev niza znakov.
Primer fgets()
Recimo, da je največje število znakov 15 in da je vhodna dolžina večja od 15, vendar bo še vedno fgets() prebral samo 15 znakov in jih natisnil.
C
dodajanje nizov java
nizi java
// C program to illustrate fgets()> #include> #define MAX 15> int> main()> {> >// defining buffer> >char> buf[MAX];> >// using fgets to take input from stdin> >fgets>(buf, MAX, stdin);> >printf>(>'string is: %s
'>, buf);> >return> 0;> }> |
>
java je nična
>
Ker fgets() bere vnos od uporabnika, moramo zagotoviti vnos med izvajanjem.
Input: Hello and welcome to techcodeview.com Output: string is: Hello and welc>
dobi()
Prebere znake iz standardnega vnosa (stdin) in jih shrani kot niz C v str, dokler ni dosežen znak nove vrstice ali konec datoteke.
- Uporaba ni varna, ker ne preveri vezave matrike.
- Uporablja se za branje nizov od uporabnika, dokler ni znak za novo vrstico.
Sintaksa
char * gets ( char * str );>
Parametri
- str: Kazalec na blok pomnilnika (matrika znakov), kjer se prebrani niz kopira kot niz C.
Povratna vrednost
- Funkcija vrne kazalec na niz, kjer je shranjen vnos.
Primer gets()
Recimo, da imamo niz znakov s 15 znaki in je vnos večji od 15 znakov, bo gets() prebral vse te znake in jih shranil v spremenljivko. Ker gets() ne preverja največje omejitve vhodnih znakov, lahko prevajalnik kadar koli vrne napako prekoračitve medpomnilnika.
C++
if else zanka v Javi
mb proti gb
// C program to illustrate> // gets()> #include> #define MAX 15> int> main()> {> >// defining buffer> >char> buf[MAX];> >printf>(>'Enter a string: '>);> >// using gets to take string from stdin> >gets>(buf);> >printf>(>'string is: %s
'>, buf);> >return> 0;> }> |
>
>
Ker gets() bere vnos uporabnika, moramo zagotoviti vnos med izvajanjem.
Input : Hello and welcome to techcodeview.com Output : Hello and welcome to techcodeview.com>
Zaključek
Obe funkciji fgets() in gets() je mogoče uporabiti za branje vnosa niza iz standardnega vnosa. Glavna razlika med funkcijo fgets() in funkcijo gets() je v tem, da funkcija fgets() omogoča uporabniku, da določi največje število znakov za branje, prav tako pa lahko spremenimo vhodni tok v katero koli datoteko v funkciji fgets().