många av oss känner till de traditionella användningarna av scanf. Tja, här är några av de mindre kända fakta
hur man läser bara en del av den input som vi behöver? Tänk till exempel på någon inmatningsström som bara innehåller tecken följt av ett heltal eller en float. Och vi behöver bara skanna det heltal eller flyta.
det vill säga
Input: ”detta är värdet 100”,
Output: värdet läses är 100
Input: ”detta är värdet 21.2”,
Output: värdet läses är 21.,/div>, &a);
printf
(
"Input value read : a = %d"
, a);
return
0;
}
Nu, förmodligen för att vi inte vet vad den föregående tecken, men vi vet säkert att det sista värdet är ett heltal., Hur kan vi skanna det sista värdet som ett heltal?
nedan lösning fungerar endast om inmatningssträngen inte har några mellanslag.,
, &a);
printf
(
"Input value read : a=%d"
,a);
return
0;
}
Explanation: The %*s in scanf is used to ignore some input as required., I det här fallet ignorerar den ingången till nästa utrymme eller ny linje. På samma sätt om du skriver %*d det kommer att ignorera heltal tills nästa utrymme eller ny rad.
ovanstående faktum kanske inte verkar som ett användbart trick vid första anblicken. För att förstå dess användning, låt oss först se fscanf ().
fscanf() : trött på alla klumpiga syntax att läsa från filer? fscanf kommer till undsättning.
int fscanf(FILE *ptr, const char *format, ...)
fscanf läser från en fil som pekas av FILPEKAREN (ptr), istället för att läsa från inmatningsströmmen.
Tänk på följande textfil abc.,txt
NAME AGE CITYabc 12 hyderbadbef 25 delhicce 65 bangalore
nu vill vi bara läsa stadsfältet i ovanstående textfil och ignorera alla andra fält. En kombination av fscanf och tricket som nämns ovan gör detta med lätthet
utgång:
CITYhyderbaddelhibangalore
övning: räkna antalet ord, tecken och rader i en fil med fscanf!
denna artikel har bidragit med Nikhil Chakravartula., Om du gillar GeeksforGeeks och vill bidra, kan du också skriva en artikel och skicka din artikel till [email protected]. se din artikel som visas på GeeksforGeeks huvudsida och hjälpa andra nördar.