Nesprávný vstup – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nesprávný vstup – C / C++ – Fórum – Programujte.comNesprávný vstup – C / C++ – Fórum – Programujte.com

 

rozicky0
Duch
21. 10. 2012   #1
-
0
-

Dobrý den,

  prosím o radu, začínám s C++. Na vstupu mám zadat 4 hodnoty v double (a,b,c,d), pokud ovšem zadám např. jednu z nich např. místo 3.24 "x", tak mi to vypíše hlášku "Nesprávné zadání". Samozřejmě po zadání všech 4 vstupů. Děkuji moc za pomoc, přeji hezký večer.

Nahlásit jako SPAM
IP: 90.181.40.–
vitamin+8
Grafoman
21. 10. 2012   #2
-
0
-

Ak zadas nespravny typ dat tak sa nastavy na stream failbit.

Ten mozes testovat v c++ pomocou cin.fail().

V C zas funkcia scanf vracia pocet uspesne nacitanych znakov, takze pri chybe ti vrati mensie cislo ako ocakavas. 

Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
KIIV
~ Moderátor
+43
God of flame
21. 10. 2012   #3
-
0
-

a hlavne musi ten fail bit vynulovat jinak uz nikdy nic dalsiho nenacte

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
rozicky0
Duch
22. 10. 2012   #4
-
0
-

Děkuji moc, jsem opravdu začátečník, nemůže mi tam někdo tu podmínku doplnit (s tím, že vypíše i špatný vstup, např. 5 8.54 a b). Ještě děkuji.

cin >> x1 >> y1 >> x2 >> y2;
if ...
cout << x1 << " " << y1 << " " << x2 << " " << y2 << endl;
Nahlásit jako SPAM
IP: 194.228.220.–
ingiraxo+15
Grafoman
22. 10. 2012   #5
-
0
-

vždy po zadání čísla (pokoud bude fail), tak musíš vyčistit cin buffer aby ti to umožnilo načítat další číslo a hlavně to číslo kde by nastal fail by to přeskočilo, takže pokud chceš načítat pouze čísla (u stringů to je jedno), tak to můžeš udělat takto

    int nums[4];

    for (int i = 0; i < 4; ++i)
    {
        while (true)
        {
            cin >> *(nums + i);

            if (cin.fail())
            {
                cin.clear();
                cin.ignore();
            }
            else break;
        }
    }
Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 19 hostů

Podobná vlákna

Vstup — založil wokena

Vstup — založil Khyplozz

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý