Verskil tussen scanf en kry

INHOUDSOPGAWE:

Verskil tussen scanf en kry
Verskil tussen scanf en kry

Video: Verskil tussen scanf en kry

Video: Verskil tussen scanf en kry
Video: Difference between scanf( ) and gets( ) function to read string in c programming language 2024, Julie
Anonim

Sleutelverskil – scanf vs gets

'n Funksie is 'n stel stellings om 'n spesifieke taak uit te voer. Sonder om alle stellings in dieselfde program te skryf, kan dit in verskeie funksies verdeel word. In programmering kan die gebruiker sy eie funksies definieer. Daar is ook funksies wat deur programmeertale verskaf word. C-taal bied 'n aantal funksies, sodat die programmeerder dit direk kan gebruik sonder om dit van die begin af te implementeer. Twee sulke funksies wat deur C-taal verskaf word, is scanf en gets. Hierdie artikel bespreek die verskil tussen hierdie twee funksies. Die belangrikste verskil tussen scanf en gets is dat scanf eindig om invoer te neem wanneer hy 'n witspasie, nuwelyn of End Of File (EOF) teëkom, terwyl gets 'n witspasie as die deel van die invoerstring beskou en die invoer beëindig wanneer nuwelyn of EOF teëgekom word.

Wat is scanf?

Die scanf-funksie kan invoer vanaf sleutelbord lees en stoor dit volgens die gegewe formaat-spesifiseerder. Dit lees die invoer totdat dit 'n witspasie, nuwe lyn of EOF teëkom. Die sintaksis is soos volg.

scanf(“formaatstring”, lys van adres van veranderlikes);

Verwys die voorbeeld hieronder gegee om scanf te verstaan.

Verskil tussen scanf en kry
Verskil tussen scanf en kry
Verskil tussen scanf en kry
Verskil tussen scanf en kry

Figuur 01: scanf met een invoer

Volgens die program hierbo is die invoer wat vanaf die sleutelbord verkry word 'n heelgetal, dus is die formaatspesifiseerder %d. As dit 'n karakterwaarde kry, is die formaatspesifiseerder %c. As jy 'n drywende punt waarde kry, is die formaat spesifiseerder %f. Die ontvangde invoerwaarde moet in die getalveranderlike gestoor word. Daarom word die adres van veranderlike nommer in die scanf-funksie deurgegee. Nou bevat die getalveranderlike die waarde wat deur die gebruiker vanaf die sleutelbord gegee word. Laastens kan ons die getalveranderlike druk om die waarde na te gaan.

Dit is ook moontlik om meer as een waarde op 'n slag te ontvang.

Verskil tussen scanf en gets_Figure 02
Verskil tussen scanf en gets_Figure 02
Verskil tussen scanf en gets_Figure 02
Verskil tussen scanf en gets_Figure 02

Figuur 02: scanf met veelvuldige insette

Die insette wat ontvang is, word in veranderlike nommer1 en nommer2 gestoor. Waardes kan nagegaan word deur printf te gebruik.

Wat word kry?

gets-funksie word gebruik om insette vanaf die sleutelbord te ontvang totdat 'n nuwe lyn of EOF teëgekom word. Die witspasie word as deel van die insette beskou. Die sintaksis vir gets-funksie is soos volg.

gets(“waar om die tou te stoor”);

As daar 'n fout is wanneer die string ontvang word, sal die gets-funksie 'n nulwaarde terugstuur.

Verwys die onderstaande voorbeeld,

Sleutelverskil tussen scanf en gets
Sleutelverskil tussen scanf en gets
Sleutelverskil tussen scanf en gets
Sleutelverskil tussen scanf en gets

Figuur 03: kry

Die invoer word deur die gets-funksie ontvang en in veranderlike woord1 gestoor. As die programmeerder scanf gebruik het in plaas van gets en 'n string soos "hallo wêreld" ingevoer het, sal scanf die string as twee stringe lees as gevolg van die witspasie. Maar gets sal dit lees as een string “hallo wêreld”.

Wat is die ooreenkomste tussen scanf en gets?

  • Albei is funksies wat deur C-programmeertaal verskaf word.
  • Albei moet koplêer stdio.h insluit om hierdie funksies te gebruik.
  • Albei kan gebruik word om insette van die standaard invoer te kry.

Wat is die verskil tussen scanf en gets?

scanf vs gets

scanf is 'n C-funksie om insette vanaf die standaardinvoer te lees totdat dit 'n witspasie, nuwelyn of EOF teëkom. gets is 'n C-funksie om invoer vanaf standaardinvoer te lees totdat 'n nuwe lyn of EOF teëgekom word. Dit beskou witspasie as 'n deel van die invoer.
Sintaksis
scanf-funksie neem die formaatstring en lys van adresse van veranderlikes. bv. scanf(“%d”, &nommer); gets-funksie neem die naam van die veranderlike om die ontvangde waarde te stoor. Bv. kry(naam);
Fleksibiliteit
scanf kan veelvuldige waardes van verskillende datatipes lees. gets() sal net karakterstringdata kry.

Opsomming – scanf vs gets

scanf en gets is funksies wat deur die programmeertaal C verskaf word. Gebruiker hoef nie hierdie funksies van die begin af te implementeer nie. Hulle kan dit direk in hul programme gebruik. Die verskil tussen scanf en gets is dat scanf eindig om invoer te neem wanneer 'n witspasie, nuwelyn of Einde Van Lêer (EOF) teëgekom word en kry 'n witspasie as die deel van die invoerstring beskou en die invoer beëindig wanneer nuwelyn of EOF teëgekom word. Die gebruik van scanf of gets hang af van die manier om gebruikersinvoer te ontvang vanaf die standaardinvoer wat die meeste van die tyd die sleutelbord is. scanf is meer buigsaam as wat dit kry.

Laai die PDF-weergawe van scanf vs gets af

Jy kan die PDF-weergawe van hierdie artikel aflaai en dit vir vanlyn doeleindes gebruik soos per aanhalingsnota. Laai asseblief PDF-weergawe hier af Verskil tussen scanf en gets

Aanbeveel: