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

Rozdział 17 - Funkcje pierwsze starcie.

Ostatnio zmodyfikowano 2013-01-27 15:49
Autor Wiadomość
Maniek
Temat założony przez niniejszego użytkownika
» 2013-01-27 10:05:55
Już to zrobiłem tylko teraz mam taki problem, że po wyświetleniu liczby, zostaje wyświetlona inna.

Oto kod :
C/C++
#include <string>
#include <iostream>
#include <conio.h>

int wczytajLiczbe()
{
    std::string liczba;
    std::cin >> liczba;
    for( unsigned i = 0; i <= liczba.length() - 1; ++i )
    {
        if( liczba[ i ] > 57 or liczba[ i ] < 48 )
        {
            std::cout << "Mozesz wpisywac tylko cyfry :)" << std::endl;
            std::cin >> liczba;
        }
    }
    std::cout << "Brawo" << std::endl;
    getch();
    int liczba2;
    liczba = liczba2;
    return liczba2;
}

int main()
{
    std::cout << "Podaj liczbe : ";
    int liczba = wczytajLiczbe();
    std::cout << "Podales liczbe : " << liczba << std::endl;
   
    return 0;
}

Tutaj mam jeszcze zrobiony program z użyciem std::cin.good() ale też źle pokazuje liczbę.

C/C++
#include <iostream>
#include <conio.h>

int wczytajLiczbe()
{
    int liczba;
    std::cin >> liczba;
    int udalo = std::cin.good();
    std::cout << udalo << std::endl;
    std::cin.clear();
    std::cin.sync();
    while( udalo == 0 )
    {
        std::cin >> liczba;
    }
   
    return liczba;
}

int main()
{
    std::cout << "Podaj liczbe : ";
    int liczba2 = wczytajLiczbe();
    std::cout << "Podales liczbe : " << liczba2 << std::endl;
   
    getch();
    return 0;
}
P-75144
Maniek
Temat założony przez niniejszego użytkownika
» 2013-01-27 14:55:02
@odświeżam


Ps. Już zrobiłem :).

Oto poprawiony kod :
C/C++
#include <iostream>
#include <conio.h>

int wczytajLiczbe()
{
    int udalo;
    int liczba;
    do
    {
        std::cin >> liczba;
        udalo = std::cin.good();
        std::cout << udalo << std::endl;
        std::cin.clear();
        std::cin.sync();
    } while( udalo == 0 );
   
    return liczba;
}

int main()
{
    std::cout << "Podaj liczbe : ";
    int liczba2 = wczytajLiczbe();
    std::cout << "Podales liczbe : " << liczba2 << std::endl;
   
    getch();
    return 0;
}
P-75154
usmiech
Rozdzial 9
» 2013-01-27 15:16:33
Staram sie zrozumiec kurs...
Cos nie tak z przykladem
Po podaniu przez uzytkownika zamiast liczby calkowitej / np 12/ liczby rzeczywistej / np 12.3/ podany kod przyjmuje ze spokojem
ta liczbe ... Traktuje ja jako dwie liczby... 12 i 0.3..... chyba cus jest nie tak :)

C/C++
#include <iostream>
int main()
{
    int a;
    float b;
    std::cout << "Podaj liczbe calkowita: ";
    std::cin >> a;
    std::cout << "Czy udalo sie wczytac? " << std::cin.good() << std::endl;
    std::cout << "Czy cos nawalilo? " << std::cin.fail() << std::endl;
   
    std::cout << "Podaj liczbe rzeczywista: ";
    std::cin >> b;
    std::cout << "Czy udalo sie wczytac? " << std::cin.good() << std::endl;
    std::cout << "Czy cos nawalilo? " << std::cin.fail() << std::endl;
   
    std::cout << "Liczba a = " << a << std::endl;
    std::cout << "Liczba b = " << b << std::endl;
    return 0;
}
P-75155
Maniek
Temat założony przez niniejszego użytkownika
» 2013-01-27 15:49:54
Po pierwsze zrób oddzielny temat. A tak poza tym to program u mnie dobrze działa.

Oto dowód.
Podaj liczbe calkowita: 12
Czy udalo sie wczytac? 1
Czy cos nawalilo? 0
Podaj liczbe rzeczywista: 12.3
Czy udalo sie wczytac? 1
Czy cos nawalilo? 0
Liczba a = 12
Liczba b = 12.3

Process returned 0 (0x0)   execution time : 10.797 s
Press any key to continue.
P-75158
1 « 2 »
Poprzednia strona Strona 2 z 2