sokan ismerik a hagyományos felhasználása scanf. Nos, itt van néhány kevésbé ismert tény
hogyan kell elolvasni a bemenetnek csak egy részét, amire szükségünk van? Vegyünk például néhány olyan bemeneti adatfolyamot, amely csak karaktereket tartalmaz, amelyeket egész szám vagy úszó követ. És csak azt az egész számot kell beolvasnunk, vagy lebegni.
azaz
Input: “ez az érték 100”,
Output: value read is 100
Input : “this is the value 21.2”,
Output : value read is 21.,/div>, &a);
printf
(
"Input value read : a = %d"
, a);
return
0;
}
Most, feltehetően nem tudjuk, mi az előző karakter vagy, de biztosan tudom, hogy az utolsó érték az egész., Hogyan lehet az utolsó értéket egész számként beolvasni?
az alábbi megoldás csak akkor működik, ha a bemeneti karakterláncnak nincs szóköze.,
, &a);
printf
(
"Input value read : a=%d"
,a);
return
0;
}
Explanation: The %*s in scanf is used to ignore some input as required., Ebben az esetben figyelmen kívül hagyja a bemenetet a következő szóközig vagy új sorig. Hasonlóképpen, ha %*d-t ír, akkor a következő szóközig vagy új sorig figyelmen kívül hagyja az egész számokat.
a fenti tény első pillantásra nem tűnik hasznos trükknek. Ahhoz, hogy megértsük annak használatát, nézzük először fscanf().
fscanf (): Unod már az összes clumpsy szintaxist, hogy olvassa el a fájlokat? nos, az fscanf jön a mentésre.
int fscanf(FILE *ptr, const char *format, ...)
fscanf a fájlmutató (ptr) által mutatott fájlból olvas, ahelyett, hogy a bemeneti adatfolyamból olvasna.
vegye figyelembe a következő abc szöveges fájlt.,txt
NAME AGE CITYabc 12 hyderbadbef 25 delhicce 65 bangalore
most csak a fenti szöveges fájl városi mezőjét szeretnénk elolvasni, figyelmen kívül hagyva az összes többi mezőt. Az fscanf és a fent említett trükk kombinációja ezt könnyedén teszi:
kimenet:
CITYhyderbaddelhibangalore
p > gyakorlat: számolja meg a szavak, karakterek és sorok számát egy fájlban az fscanf használatával!
ezt a cikket Nikhil Chakravartula írta., Ha tetszik a GeeksforGeeks, és szeretne hozzájárulni, akkor is írni egy cikket, majd küldje el a cikket, hogy [email protected]. lásd a cikket megjelenő GeeksforGeeks főoldalon, és segítsen más Geeks.