mange af os kender de traditionelle anvendelser af scanf. Nå, her er nogle af de mindre kendte fakta
Sådan læses kun en del af det input, vi har brug for? For eksempel overveje nogle input stream, der kun indeholder tegn efterfulgt af et heltal eller en float. Og vi skal kun scanne det heltal eller flyde.
Det vil sige
Input: “dette er værdien 100”,
Output: værdi læst er 100
Input : “dette er værdien 21.2”,
Output : værdi læst er 21.,/div>, &a);
printf
(
"Input value read : a = %d"
, a);
return
0;
}
Nu, vi formentlig ikke ved, hvad det foregående tegn, men vi sikkert vide, at den sidste værdi er heltal., Hvordan kan vi scanne den sidste værdi som et heltal?
nedenfor løsning virker kun, hvis input streng har ingen mellemrum.,
, &a);
printf
(
"Input value read : a=%d"
,a);
return
0;
}
Explanation: The %*s in scanf is used to ignore some input as required., I dette tilfælde ignorerer det input indtil næste mellemrum eller ny linje. Tilsvarende hvis du skriver % * d, vil det ignorere heltal indtil næste mellemrum eller ny linje.
ovenstående faktum kan ikke virke som et nyttigt trick ved første øjekast. For at forstå dens brug, lad os først se fscanf().
fscanf() : træt af alle de klumpede syntaks at læse fra filer? nå, fscanf kommer til undsætning.
int fscanf(FILE *ptr, const char *format, ...)
fscanf læser fra en fil, der er peget af FILE pointer (PTR), i stedet for at læse fra inputstrømmen.
overvej følgende tekstfil abc.,t .t
NAME AGE CITYabc 12 hyderbadbef 25 delhicce 65 bangalore
nu vil vi kun læse byfeltet i ovenstående tekstfil og ignorere alle de andre felter. En kombination af fscanf, og det trick er nævnt ovenfor, betyder dette med lethed
Output:
CITYhyderbaddelhibangalore
Motion: Tæl antallet af ord, linjer og tegn i en fil ved hjælp fscanf!
Denne artikel er bidraget af Nikhil Chakravartula., Hvis du kan lide GeeksforGeeks og vil gerne bidrage, og du kan også skrive en artikel og sende din artikel til [email protected]. Se din artikel, der optræder på GeeksforGeeks vigtigste side og hjælpe andre Nørder.