Monet meistä tietävät, perinteisten käyttötapojen scanf. No, tässä muutamia vähemmän tunnettuja faktoja
kuinka lukea vain osa panoksesta, jota tarvitsemme? Esimerkiksi harkita joitakin tulovirta, joka sisältää vain merkkejä seuraa kokonaisluku tai float. Ja meidän täytyy skannata vain, että kokonaisluku tai float.
Tämä on
Tulo: ”tämä on arvo 100”,
Output: lukema on 100.
Input : ”tämä on arvo 21.2”,
Output : arvo lukea on 21.,/div>, &a);
printf
(
"Input value read : a = %d"
, a);
return
0;
}
Nyt, oletettavasti emme tiedä, mitä edellisen hahmot ovat, mutta me varmasti tietää, että viimeinen arvo on kokonaisluku., Miten voimme skannata viimeisen arvon kokonaislukuna?
alla oleva ratkaisu toimii vain, jos tulonarussa ei ole välilyöntejä.,
, &a);
printf
(
"Input value read : a=%d"
,a);
return
0;
}
Explanation: The %*s in scanf is used to ignore some input as required., Tällöin se jättää tulon huomiotta seuraavaan tilaan tai uuteen riviin asti. Samoin jos kirjoitat % * d se sivuuttaa kokonaislukuja kunnes seuraava tila tai uusi rivi.
edellä mainittu seikka ei välttämättä vaikuta ensi silmäyksellä hyödylliseltä kikalta. Jotta ymmärtäisimme sen käytön, katsotaan ensin fscanf ().
fscanf() : väsynyt kaikesta tiedostoista luettavasta klumpsy-syntaksista? fscanf tulee apuun.
int fscanf(FILE *ptr, const char *format, ...)
fscanf lukee tiedostosta huomautti by the FILE pointer (ptr), sen sijaan, lukeminen input stream.
harkitse seuraavaa tekstitiedostoa abc.,txt
NAME AGE CITYabc 12 hyderbadbef 25 delhicce 65 bangalore
Nyt, haluamme lukea vain city-kentän yllä oleva teksti-tiedosto, unohdetaan kaikki muut kentät. Yhdistelmä fscanf ja temppu edellä mainitut tekee tämän helposti.
tuloksena on:
CITYhyderbaddelhibangalore
Tehtävä: Laske montako sanaa, merkit ja rivit tiedostoon käyttäen fscanf!
tämän artikkelin on kirjoittanut Nikhil Chakravartula., Jos pidät GeeksforGeeks ja haluat edistää, voit myös kirjoittaa artikkeli ja lähetä artikkeli [email protected]. Katso artikkeli näy GeeksforGeeks tärkein sivu ja auttaa muita Nörttejä.