Til læsning af en strengværdi med mellemrum kan vi bruge enten gets() eller fgets() i programmeringssproget C. Her vil vi se, hvad der er forskellen mellem gets() og fgets().
fgets()
fgets() læser en linje fra den angivne strøm og gemmer den i strengen, der peges på af str. Den stopper, når enten (n-1) tegn læses, nylinjetegnet læses, eller slutningen af filen nås, alt efter hvad der kommer først.
Syntaks
char * fgets (char * str , int n , FILE * stream );>
Parametre
- str: Pointer til en række af tegn, hvor den læste streng kopieres. n: Maksimalt antal tegn, der skal kopieres til str (inklusive det afsluttende null-tegn). *stream: Pointer til et FILE-objekt, der identificerer en inputstrøm.
Bemærk: stdin kan bruges som argument til at læse fra standard input.
Returværdi
- Funktionen fgets() returnerer en pointer til strengen, hvor input er gemt.
Funktioner af fgets()
- Den følger nogle parametre såsom maksimal længde, buffer og inputenhedsreference.
- det er sikker at bruge, fordi det kontrollerer array bundet.
- Den bliver ved med at læse, indtil der stødes på et nyt linjetegn eller maksimumgrænsen for tegnarrayet.
Eksempel på fgets()
Lad os sige, at det maksimale antal tegn er 15 og inputlængden er større end 15, men stadig vil fgets() kun læse 15 tegn og udskrive det.
C
// 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;> }> |
turbo c++ download
>
>
Da fgets() læser input fra brugeren, skal vi give input under kørsel.
Input: Hello and welcome to techcodeview.com Output: string is: Hello and welc>
får ()
Læser tegn fra standardinputtet (stdin) og gemmer dem som en C-streng i str, indtil et nylinjetegn eller slutningen af filen nås.
- Det er ikke sikkert at bruge, fordi det ikke kontrollerer array bundet.
- Det bruges til at læse strenge fra brugeren, indtil der ikke stødes på et linjeskifttegn.
Syntaks
char * gets ( char * str );>
Parametre
- str: Pointer til en hukommelsesblok (array af char), hvor den læste streng kopieres som en C-streng.
Returværdi
- Funktionen returnerer en pointer til strengen, hvor input er gemt.
Eksempel på gets()
Antag, at vi har et tegnarray på 15 tegn, og inputtet er større end 15 tegn, vil gets() læse alle disse tegn og gemme dem i en variabel. Da gets() ikke kontrollerer den maksimale grænse for inputtegn, kan compileren til enhver tid returnere bufferoverløbsfejl.
C++
// 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;> }> |
konverter char til string java
>
>
Da gets() læser input fra brugeren, skal vi give input under kørsel.
Input : Hello and welcome to techcodeview.com Output : Hello and welcome to techcodeview.com>
Konklusion
Både fgets() og gets() funktioner kan bruges til at læse strenginput fra standard input. Den største forskel mellem fgets()-funktionen og gets()-funktionen er, at fgets()-funktionen giver brugeren mulighed for at angive det maksimale antal tegn, der skal læses, og vi kan også ændre inputstrømmen til en hvilken som helst fil i fgets().