Zadávám na vstup hodnoty které čtu pomocí fscanf(stdin, "%lf", &vstup).
Proměnná vstup je DOUBLE.
Jak zjistim zda je na vstupu vážně číslo a ne ještě jiný znak?
Potřebuju rozlišit tyto hodnoty: (např)
23.2 - dobře zadáno (mohu pokračovat)
5a6 -špatně zadáno (chyba)
aabvs -špatně zadáno (chyba)
0.00p -špatně zadáno (chyba)
Jak se to dá jednoduše zjistit?
Fórum › C / C++
Kontrola vstupu
To Kuba-$ : Pres navratovou hodnotu funkce fscanf(). Funkce vraci pocet uspesne nactenych polozek. Pokud se nepovede nacist, tak vraci cislo mensi (nebo rovno nule), nebo EOF, pokud uz nelze ze vstupniho streamu cist.
http://www.cplusplus.com/reference/clibrary/cstdio/fscanf.html
To nickJartin : Díky, ale mi to nějak nefunguje :-(
zadávám tohle:
double vstup;
int a;
while (a = fscanf(stdin, "%lf", &vstup) != EOF) {
if (a != 1) {
printf("CHYBA: a = %i\n", a);
exit(1);
}
printf("a = %i\n", a);
//.......pokracovani ve vypoctu
a ono mi to nereaguje. Porad to pise ze a=1 a program jede dal a cykli se :-( co s tim?
To Jura : na toto automaty? no nevim, automaty mam sice velice rad ale v tomto pripade (kontrola spravnosti vstupu) bych to videl jako trochu prehnane, kdyz ono ((a = fscanf(stdin, "%lf", &vstup)) != EOF) funguje bez problemu (tedy predpokladam ze chceme najednou nacitat pouze polozku jednoho typu, jinak by se automaty urcite daly pouzit)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Kontrola vstupu — založil mickey
Kontrola vstupu — založil tirio
Ošetření vstupu — založil Koja
Podminka vstupu — založil vaclav
Ostreni vstupu v C — založil canda22
Moderátoři diskuze