mnoho z nás zná tradiční použití scanf. Zde jsou některé z méně známých skutečností
Jak číst pouze část vstupu, který potřebujeme? Zvažte například nějaký vstupní proud, který obsahuje pouze znaky následované celočíselným číslem nebo plovákem. A musíme skenovat pouze to celé číslo nebo plovák.
tedy
vstup: „toto je hodnota 100“,
výstup: hodnota read je 100
vstup: „toto je hodnota 21.2“,
výstup: hodnota read je 21.,/div>, &a);
printf
(
"Input value read : a = %d"
, a);
return
0;
}
Nyní, údajně, nevíme, co předchozí postavy jsou ale víme jistě, že poslední hodnota je celé číslo., Jak můžeme skenovat poslední hodnotu jako celé číslo?
níže uvedené řešení funguje pouze v případě, že vstupní řetězec nemá mezery.,
, &a);
printf
(
"Input value read : a=%d"
,a);
return
0;
}
Explanation: The %*s in scanf is used to ignore some input as required., V tomto případě ignoruje vstup do dalšího prostoru nebo nového řádku. Podobně pokud napíšete % * D bude ignorovat celá čísla až do dalšího prostoru nebo nového řádku.
výše uvedená skutečnost se nemusí na první pohled zdát jako užitečný trik. Abychom pochopili jeho použití, podívejme se nejprve na fscanf ().
fscanf (): unavený ze všech clumpsy syntaxe číst ze souborů? no, fscanf přijde na záchranu.
int fscanf(FILE *ptr, const char *format, ...)
fscanf čte ze souboru na SOUBOR ukazatel (ptr), místo čtení ze vstupního proudu.
zvažte následující textový soubor abc.,txt
NAME AGE CITYabc 12 hyderbadbef 25 delhicce 65 bangalore
nyní chceme číst pouze městské pole výše uvedeného textového souboru a ignorovat všechna ostatní pole. Kombinace fscanf a trik je uvedeno výše, dělá to s lehkostí
Výstup:
CITYhyderbaddelhibangalore
Cvičení: počet slov, znaky a řádky v souboru pomocí fscanf!
tento článek přispívá Nikhil Chakravartula., Pokud se vám líbí GeeksforGeeks a chtěli byste přispět, můžete také napsat článek a pošlete své článek [email protected]. Viz váš článek se objeví na GeeksforGeeks hlavní stránce a pomoci jiných Mágů.