Lai nolasītu virknes vērtību ar atstarpēm, mēs varam izmantot gets() vai fgets() programmēšanas valodā C. Šeit mēs redzēsim, kāda ir atšķirība starp gets () un fgets ().
fgets()
Fgets () nolasa rindiņu no norādītās straumes un saglabā to virknē, uz kuru norāda str. Tas tiek pārtraukts, kad tiek nolasītas (n-1) rakstzīmes, tiek nolasīta jaunā rindiņas rakstzīme vai tiek sasniegtas faila beigas, atkarībā no tā, kurš no abiem nosacījumiem tiek izpildīts pirmais.
Sintakse
char * fgets (char * str , int n , FILE * stream );>
Parametri
- str: rādītājs uz rakstzīmju masīvu, kurā tiek kopēta nolasītā virkne. n: maksimālais rakstzīmju skaits, kas jāiekopē str (ieskaitot beigu nulles rakstzīmi). *straume: rādītājs uz FILE objektu, kas identificē ievades straumi.
Piezīme: stdin var izmantot kā argumentu, lai lasītu no standarta ievades.
Atdeves vērtība
- Funkcija fgets() atgriež rādītāju uz virkni, kurā tiek saglabāta ievade.
Fgets() funkcijas
- Tas atbilst dažiem parametriem, piemēram, maksimālajam garumam, buferim un ievades ierīces atsaucei.
- Tas ir droši izmantot, jo tas pārbauda saistīto masīvu.
- Tas turpina lasīt, līdz tiek atrasta jauna rindas rakstzīme vai tiek sasniegts rakstzīmju masīva maksimālais ierobežojums.
fgets() piemērs
Pieņemsim, ka maksimālais rakstzīmju skaits ir 15 un ievades garums ir lielāks par 15, taču fgets () nolasīs tikai 15 rakstzīmes un to izdrukās.
C
abstraktajai klasei var būt konstruktors
programmatūras testēšana un veidi
// 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;> }> |
>
1nf 2nf 3nf
>
Tā kā fgets () nolasa lietotāja ievadi, mums ir jānodrošina ievade izpildlaikā.
Input: Hello and welcome to techcodeview.com Output: string is: Hello and welc>
saņem ()
Nolasa rakstzīmes no standarta ievades (stdin) un saglabā tās kā C virkni str, līdz tiek sasniegta jaunas rindiņas rakstzīme vai faila beigas.
- To nav droši lietot, jo tas nepārbauda masīva saistītos ierobežojumus.
- To izmanto, lai nolasītu virknes no lietotāja, līdz netiek atrasta jaunrindas rakstzīme.
Sintakse
char * gets ( char * str );>
Parametri
- str: rādītājs uz atmiņas bloku (rakstu masīvs), kur nolasītā virkne tiek kopēta kā C virkne.
Atdeves vērtība
- Funkcija atgriež rādītāju uz virkni, kurā tiek saglabāta ievade.
Gets() piemērs
Pieņemsim, ka mums ir rakstzīmju masīvs ar 15 rakstzīmēm un ievade ir lielāka par 15 rakstzīmēm, gets() nolasīs visas šīs rakstzīmes un saglabās tās mainīgajā. Tā kā gets() nepārbauda maksimālo ievades rakstzīmju ierobežojumu, kompilators jebkurā laikā var atgriezt bufera pārpildes kļūdu.
C++
Sweta Tiwari aktieris
tcp ip modelis
// 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;> }> |
>
>
Tā kā gets() nolasa lietotāja ievadi, mums ir jānodrošina ievade izpildlaikā.
Input : Hello and welcome to techcodeview.com Output : Hello and welcome to techcodeview.com>
Secinājums
Gan fgets(), gan gets() funkcijas var izmantot, lai nolasītu virknes ievadi no standarta ievades. Galvenā atšķirība starp funkciju fgets() un funkciju gets() ir tā, ka funkcija fgets() ļauj lietotājam norādīt maksimālo lasāmo rakstzīmju skaitu, kā arī mēs varam mainīt ievades straumi uz jebkuru failu fgets().