Een functie is een verzameling instructies om een specifieke taak uit te voeren. Zonder alle instructies in hetzelfde programma te schrijven, kan deze in meerdere functies worden verdeeld. Tijdens het programmeren kan de gebruiker zijn eigen functies definiëren. Er zijn ook functies die worden geboden door programmeertalen. C-taal biedt een aantal functies, zodat de programmeur ze direct kan gebruiken zonder ze vanaf het begin te implementeren. Twee van dergelijke functies die door de C-taal worden geleverd, zijn scanf en krijgen. Dit artikel bespreekt het verschil tussen deze twee functies. De belangrijk verschil tussen scanf en krijgt is dat scanf eindigt het nemen van invoer na het tegenkomen van een witruimte, newline of Einde van Bestand (EOF) terwijl krijgt beschouwt een witruimte als het deel van de invoerreeks en eindigt de invoer bij het tegenkomen van newline of EOF.
1. Overzicht en belangrijkste verschil
2. Wat is scanf
3. Wat wordt er
4. Overeenkomsten Tussen scanf en krijgt
5. Vergelijking zij aan zij - scanf vs komt in tabelvorm
6. Samenvatting
De scanf-functie kan de invoer van het toetsenbord lezen en ze opslaan volgens de opgegeven indelingsspecificatie. Het leest de invoer tot het tegenkomt een witruimte, newline of EOF. De syntaxis is als volgt.
scanf ("format string", lijst met adressen van variabelen);
Raadpleeg het onderstaande voorbeeld om scanf te begrijpen.
Figuur 01: scanf met één invoer
Volgens het bovenstaande programma is de invoer die van het toetsenbord komt een geheel getal, dus de formaatspecificatie is% d. Als het een tekenwaarde krijgt, is de indelingsspecificatie% c. Als u een drijvende-kommawaarde krijgt, is de indelingsspecificatie% f. De ontvangen invoerwaarde moet worden opgeslagen in de nummervariabele. Daarom wordt het adres van het variabele nummer doorgegeven aan de scanf-functie. Nu bevat de nummervariabele de waarde die de gebruiker van het toetsenbord heeft gekregen. Ten slotte kunnen we de nummervariabele afdrukken om de waarde te controleren.
Het is ook mogelijk om meer dan één waarde tegelijk te ontvangen.
Figuur 02: scanf met meerdere ingangen
De ontvangen ingangen worden opgeslagen in variabele nummer 1 en nummer2. Waarden kunnen worden gecontroleerd met behulp van printf.
krijgt de functie wordt gebruikt om invoer van het toetsenbord te ontvangen tot een newline of EOF tegenkomt. De spatie wordt beschouwd als een onderdeel van de invoer. De syntaxis voor de functie krijgt als volgt.
gets ("waar de string op te slaan");
Als er een fout optreedt bij het ontvangen van de tekenreeks, retourneert de krijgt-functie een nulwaarde.
Raadpleeg het onderstaande voorbeeld,
Figuur 03: krijgt
De invoer wordt ontvangen door de functie krijgt en opgeslagen in variabele word1. Als de programmeur scanf gebruikt in plaats van een string zoals "hello world" te krijgen en in te voeren, zal scanf de string als twee strings lezen vanwege de witruimte. Maar krijgt het als één snaar "hallo wereld".
scanf vs krijgt | |
scanf is een C-functie om invoer van de standaardinvoer te lezen totdat een witruimte, newline of EOF wordt tegengekomen. | krijgt is een C-functie om invoer van standaardinvoer te lezen totdat een newline of EOF wordt tegengekomen. Het beschouwt spatie als een deel van de invoer. |
Syntaxis | |
scanf-functie neemt de opmaakreeks en lijst met adressen van variabelen. bijv. scanf ("% d", & nummer); | krijgt functie neemt de naam van de variabele om de ontvangen waarde op te slaan. Bijv. krijgt (naam); |
Flexibiliteit | |
scanf kan meerdere waarden van verschillende gegevenstypen lezen. | gets () krijgt alleen tekenreeksgegevens. |
scanf en krijgt zijn functies die worden geleverd door de programmeertaal C. De gebruiker hoeft deze functies niet vanaf het begin te implementeren. Ze kunnen ze rechtstreeks gebruiken in hun programma's. Het verschil tussen scanf en gets is dat scanf eindigt met het uitvoeren van een witruimte, newline of end of file (EOF) en beschouwt een witruimte als het deel van de invoerreeks en eindigt de invoer bij het tegenkomen van newline of EOF. Het gebruik van scanf of krijgen is afhankelijk van de manier waarop gebruikersinvoer wordt ontvangen van de standaardinvoer die het toetsenbord het grootste deel van de tijd is. scanf is flexibeler dan krijgt.
U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden, zoals per citaatnotitie. Download hier de PDF-versie. Verschil tussen scanf en krijgt
1.LearningLad., 'Scanf () Functie in C Programmering Taalvideo-tutorials' YouTube, YouTube, 23 april 2013. Beschikbaar Hier
2.LearningLad, 'gets () String-invoervak in C Programming Language Video Tutorial', YouTube, YouTube, 6 mei 2013. Beschikbaar Hier