Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zabezpieczenie programu przed wprowadzeniem złych danych.

Ostatnio zmodyfikowano 2011-11-05 19:24
Autor Wiadomość
malan
» 2011-11-05 11:54:36
C/C++
while(...)
{
    std::cout << "Co chcesz teraz zrobic?: ";
    std::cin >> wybor;
    sukces = std::cin.good();
    if( sukces == true )
    {
        // Twój kod...
    } else
    {
        // Wprowadzono niepoprawne dane...
    }
}
:)
P-43346
Swift
Temat założony przez niniejszego użytkownika
» 2011-11-05 11:56:45
Po else mam:
C/C++
std::cout << "Podano zla liczbe" << std::endl;

Poza tym program każdą wprowadzoną cyfrę odczytuje jak warunek dla rozpoczęcia losowania.

Program na chwilę obecną wygląda tak:
C/C++
#include <iostream>
#include <cstdlib>

void menu()
{
    // menu
}

int main()
{
    int wybor;
    unsigned int trik;
    bool sukces;
    menu();
    do
    {
        std::cout << "Co chcesz teraz zrobic?: ";
        std::cin >> wybor;
        sukces = std::cin.good();
        if( sukces == true )
        {
            std::cout << "----------" << std::endl;
            if( wybor = 1 )
            {
                // Tutaj losowanie i switch ... case
            }
        }
        else
        {
            std::cout << "Podano zla liczbe" << std::endl;
        }
    }
    while( wybor != 2 );
   
    return 0;
}
P-43347
malan
» 2011-11-05 12:13:14
A teraz przeczytaj » Kurs C++ » Poziom 1Obsługa strumienia wejściowego lekcja i poszukaj jeszcze jeden rzeczy, której potrzebujesz :) Dobra - podpowiem: Czyszczenie zawartości strumienia wejściowego.
P-43350
Swift
Temat założony przez niniejszego użytkownika
» 2011-11-05 17:46:52
O! Działa! Dzięki wielkie za pomoc ;) Mogę teraz realizować naukę dalej! ;****

Ah, jednak nie do końca.. Nadal występuje problem. Program nie wariuje po wpisaniu litery, ale każdą cyfrę traktuje jak warunek dla rozpoczęcia losowania :/

P.S. Malan, posiadasz może jakiś komunikator, na który mógłbym Ci spamować przy każdym błędzie? :D
P-43386
malan
» 2011-11-05 18:40:46
Ah, jednak nie do końca.. Nadal występuje problem.(...)
Zapewne zrobiłeś coś źle :)

P.S. Malan, posiadasz może jakiś komunikator, na który mógłbym Ci spamować przy każdym błędzie? :D
Nie :)
P-43393
Swift
Temat założony przez niniejszego użytkownika
» 2011-11-05 18:47:30
Program po zmianach:
C/C++
#include <iostream>
#include <cstdlib>

void menu()
{
    // menu
}

int main()
{
    int wybor;
    unsigned int trik;
    bool sukces;
    menu();
    do
    {
        std::cout << "Co chcesz teraz zrobic?: ";
        std::cin.clear();
        std::cin.sync();
        std::cin >> wybor;
        sukces = std::cin.good();
        if( sukces == true )
        {
            std::cout << "----------" << std::endl;
            if( wybor = 1 )
            {
                // losowanie i switch ... case
            }
        }
        else
        {
            std::cout << "Podano zla liczbe." << std::endl;
        }
    }
    while( wybor != 2 );
   
    return 0;
}

No i nie wiem co może być źle.. Analizowałem 5 razy pętlę i nic.
P-43394
pekfos
» 2011-11-05 19:16:40
if( wybor = 1 )
co to ma być? wstaw "==" zamiast '='.
P-43397
Swift
Temat założony przez niniejszego użytkownika
» 2011-11-05 19:24:30
Ah, jak mogłem to przeoczyć.. Wybaczcie, przez te wszystkie zmiany i kombinacje musiało mi się pochrzanić..
P-43399
1 2 « 3 »
Poprzednia strona Strona 3 z 3