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

Pętla do ... while

Ostatnio zmodyfikowano 2011-09-11 12:45
Autor Wiadomość
Bunny
Temat założony przez niniejszego użytkownika
Pętla do ... while
» 2011-09-11 10:45:57
chodzi o to by w przypadku podania litery program poprosił o nią jeszcze raz a po podaniu liczby by ją rozpisał


C/C++
#include <iostream>
using namespace std;
int main()
{
    int liczba;
    do
    {
        cin.clear();
        cin.sync();
        cin >> liczba;
        if(...) <------------------
        do
        {
            cout << liczba << endl;
            liczba--;
        } while( liczba >= 0 );
       
    } while( liczba = cin.fail() );
   
    return 0;
}



dla czego gdy wpiszę w podane miejsce "liczba = cin.good()" to pętla wypisuje tylko podaną liczbę i jeden a po podaniu litery działa dobrze. a gdy wpiszę tam
"liczba != cin.fail()" to po podaniu liczby działa dobrze (wypisuje ja) ale przy podaniu litery podaje dużą liczbę i też ją wypisuje :D. dlaczego tak jest?
P-40781
SeaMonster131
» 2011-09-11 11:26:29
to daj:
if( cin.good() )
 
Czyli:
C/C++
#include <iostream>
using namespace std;
int main()
{
    int liczba;
    do
    {
        cin.clear();
        cin.sync();
        cin >> liczba;
        if( cin.good() ) <------------------
        do
        {
            cout << liczba << endl;
            liczba--;
        } while( liczba >= 0 );
       
    } while( liczba = cin.fail() );
   
    return 0;
}

W sumie ten warunek
while( liczba = cin.fail() )
 możesz zastąpić samym
while( cin.fail() )
:)
P-40782
Bunny
Temat założony przez niniejszego użytkownika
Dzięki SeaMonster131
» 2011-09-11 12:45:25
Dzięki wielkie, coś musiałem pominąć w kursie :P
P-40784
« 1 »
  Strona 1 z 1