logo

fgets() ja gets() C-kielellä

Välilyönnillä varustetun merkkijonoarvon lukemiseen voidaan käyttää joko gets()- tai fgets():tä C-ohjelmointikielessä. Täällä näemme, mikä ero on gets() ja fgets() välillä.

fgets()

Fgets() lukee rivin määritetystä virrasta ja tallentaa sen merkkijonoon, johon str. Se pysähtyy, kun jompikumpi (n-1) merkkiä luetaan, rivinvaihtomerkki luetaan tai tiedoston loppu saavutetaan sen mukaan, kumpi tulee ensin.



Syntaksi

char * fgets  (char * str , int n , FILE * stream );>

Parametrit

    str: Osoitin merkkijonoon, johon lukema merkkijono kopioidaan. n: str-kirjaimeen kopioitavien merkkien enimmäismäärä (mukaan lukien päättyvä tyhjä merkki). *stream: Osoitin FILE-objektiin, joka tunnistaa syöttövirran.

Huomautus: stdin voidaan käyttää argumenttina luettaessa vakiosyötteestä.

Palautusarvo

  • Fgets()-funktio palauttaa osoittimen merkkijonoon, johon syöte on tallennettu.

fgets() ominaisuudet

  • Se seuraa joitain parametreja, kuten enimmäispituus, puskuri ja syöttölaitteen viite.
  • se on turvallinen käyttää, koska se tarkistaa taulukon sidotun.
  • Se jatkaa lukemista, kunnes uusi rivimerkki havaitaan tai merkkijonon enimmäisraja.

Esimerkki fgets()

Oletetaan, että merkkien enimmäismäärä on 15 ja syötteen pituus on suurempi kuin 15, mutta silti fgets() lukee vain 15 merkkiä ja tulostaa sen.

C



elokuvanäyttelijä Kajal


c ohjelmat





// 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;> }>

>

kuinka lajitella taulukko javassa
>

Koska fgets() lukee syötteen käyttäjältä, meidän on annettava syöte ajon aikana.

 Input: Hello and welcome to techcodeview.com Output: string is: Hello and welc>

saa ()

Lukee merkkejä vakiosyötteestä (stdin) ja tallentaa ne C-merkkijonona str:ään, kunnes rivinvaihtomerkki tai tiedoston loppu saavutetaan.

  • Sitä ei ole turvallista käyttää, koska se ei tarkista taulukon sidottua.
  • Sitä käytetään lukemaan merkkijonoja käyttäjältä, kunnes rivinvaihtomerkkiä ei löydy.

Syntaksi

char * gets ( char * str  );>

Parametrit

    str: Osoitin muistilohkoon (merkkijono), jossa luettu merkkijono kopioidaan C-merkkijonona.

Palautusarvo

  • Funktio palauttaa osoittimen merkkijonoon, johon syöte on tallennettu.

Esimerkki gets()

Oletetaan, että meillä on 15 merkin merkkijono ja syöte on suurempi kuin 15 merkkiä, gets() lukee kaikki nämä merkit ja tallentaa ne muuttujaan. Koska gets() ei tarkista syötettävien merkkien enimmäisrajaa, kääntäjä voi milloin tahansa palauttaa puskurin ylivuotovirheen.

C++


alkulukuohjelma javassa



python kirjoittaa json tiedostoon
// 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;> }>

>

>

Koska gets() lukee syötteen käyttäjältä, meidän on annettava syöte ajon aikana.

 Input : Hello and welcome to techcodeview.com Output : Hello and welcome to techcodeview.com>

Johtopäätös

Sekä fgets()- että gets()-funktioita voidaan käyttää merkkijonotulon lukemiseen vakiosyötteestä. Suurin ero fgets()-funktion ja gets()-funktion välillä on se, että fgets()-funktion avulla käyttäjä voi määrittää luettavien merkkien enimmäismäärän, ja voimme myös muuttaa syöttövirran mihin tahansa tiedostoon fgets()-funktiossa.