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

[lekcja 9 ] dziwny problem

Ostatnio zmodyfikowano 2012-01-19 20:55
Autor Wiadomość
nadowsky
Temat założony przez niniejszego użytkownika
[lekcja 9 ] dziwny problem
» 2012-01-16 22:34:49
witam,
używam deva i po kompilacji zadania domowego z leckci 9 ten kod działa zgodnie z opisem:
KOD:
C/C++
#include <iostream>
#include <conio.h>
using namespace std;
float a, b, c;
int main()
{
   
   
    cout << "Podaj 1 liczbe: ";
    cin >> a;
    bool spr = cin.good();
    cin.clear();
    cin.sync();
   
    cout << "Podaj 2 liczbe: ";
    cin >> b;
    bool spr2 = cin.good();
    cin.clear();
    cin.sync();
   
    cout << "Podaj 3 liczbe: ";
    cin >> c;
    bool spr3 = cin.good();
    cin.clear();
    cin.sync();
    cout << "Liczba 1 = " << a << endl;
   
    cout << "wczytano ? " << spr << endl;
    cout << "Liczba 2 = " << b << endl;
    cout << "wczytano ? " << spr2 << endl;
    cout << "Liczba 3 = " << c << endl;
    cout << "wczytano ? " << spr3 << endl;
   
    getch();
}
tzn strumien sie zeruje i po podaniu tekstu jako zmiennej jej wynik wyświetla sie jako 0
ale gdy wrzuce deklaracje zmiennych w blok miedzy{}
to strumien nie czysci sie i wywyala jakieś bezsensowne liczy oto ten drugi kod który nie działa
KOD:
C/C++
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
   
    float a, b, c;
    cout << "Podaj 1 liczbe: ";
    cin >> a;
    bool spr = cin.good();
    cin.clear();
    cin.sync();
   
    cout << "Podaj 2 liczbe: ";
    cin >> b;
    bool spr2 = cin.good();
    cin.clear();
    cin.sync();
   
    cout << "Podaj 3 liczbe: ";
    cin >> c;
    bool spr3 = cin.good();
    cin.clear();
    cin.sync();
    cout << "Liczba 1 = " << a << endl;
   
    cout << "wczytano ? " << spr << endl;
    cout << "Liczba 2 = " << b << endl;
    cout << "wczytano ? " << spr2 << endl;
    cout << "Liczba 3 = " << c << endl;
    cout << "wczytano ? " << spr3 << endl;
   
    getch();
}
prosze o pomoc i pozdrawiam
P-48464
BoBeR
» 2012-01-17 10:11:44
U mnie wszystko działa, używam C::B.
P-48487
DejaVu
» 2012-01-17 13:45:43
Wartości zmiennych będą przypadkowe ponieważ wystąpił błąd podczas wczytywania. Posiadasz jednak informację, że nastąpił błąd i nie możesz polegać na wartości, którą wczytywałeś.

Jedyną różnicą jaka występuje w tych programach to fakt, że zmienne a,b,c są globalne, a zatem posiadają nadaną wartość początkową równą 0. Tej własności nie posiadają zmienne zadeklarowane lokalnie, a w konsekwencji posiadają przypadkową wartość (bo im nie nadałeś żadnej wartości).
P-48491
nadowsky
Temat założony przez niniejszego użytkownika
» 2012-01-19 20:55:16
Dziękuje i zamykam
P-48849
« 1 »
  Strona 1 z 1