velen van ons kennen het traditionele gebruik van scanf. Nou, hier zijn enkele van de minder bekende feiten
Hoe lees je slechts een deel van de invoer die we nodig hebben? Denk bijvoorbeeld aan een invoerstroom die alleen tekens bevat, gevolgd door een geheel getal of een float. En we moeten alleen dat gehele getal scannen of zweven.
dat wil zeggen ,
Input: “Dit is de waarde 100”,
Output: waarde gelezen is 100
Input:”Dit is de waarde 21.2″,
Output : waarde gelezen is 21.,/div>, &a);
printf
(
"Input value read : a = %d"
, a);
return
0;
}
Nu, vermoedelijk weten we niet wat de vorige tekens worden, maar wij zeker weten dat de laatste waarde is een geheel getal., Hoe kunnen we de laatste waarde scannen als een geheel getal?
onderstaande oplossing werkt alleen als de invoerstring geen spaties heeft.,
, &a);
printf
(
"Input value read : a=%d"
,a);
return
0;
}
Explanation: The %*s in scanf is used to ignore some input as required., In dit geval negeert het de invoer tot de volgende spatie of nieuwe regel. Op dezelfde manier als je %*d schrijft zal het gehele getallen negeren tot de volgende spatie of nieuwe regel.
het bovenstaande feit lijkt op het eerste gezicht misschien geen nuttige Truc. Om het gebruik ervan te begrijpen, laten we eerst fscanf () zien.
fscanf (): moe van alle klonterige syntaxis om uit bestanden te lezen? nou, fscanf komt te hulp.
int fscanf(FILE *ptr, const char *format, ...)
fscanf leest van een bestand dat wordt aangeduid door de bestands pointer (PTR), in plaats van het lezen van de invoerstroom.
overweeg het volgende tekstbestand abc.,txt
NAME AGE CITYabc 12 hyderbadbef 25 delhicce 65 bangalore
nu willen we alleen het veld stad van het bovenstaande tekstbestand lezen, waarbij alle andere velden worden genegeerd. Een combinatie van fscanf en de bovengenoemde truc doet dit met gemak
uitvoer:
CITYhyderbaddelhibangalore
oefening: Tel het aantal woorden, tekens en regels in een bestand met fscanf!
Dit artikel is geschreven door Nikhil Chakravartula., Als je GeeksforGeeks leuk vindt en wil bijdragen, kun je ook een artikel schrijven en je artikel mailen naar [email protected]. zie uw artikel verschijnen op de GeeksforGeeks hoofdpagina en help andere Geeks.