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

Problem z zadaniem z lekcji 9

Ostatnio zmodyfikowano 2015-10-04 12:31
Autor Wiadomość
snoby
Temat założony przez niniejszego użytkownika
Problem z zadaniem z lekcji 9
» 2015-10-01 20:38:27
Witam, mam pewien problem z następującym zadaniem :
"Napisz program, który wczyta trzy liczby rzeczywiste, a na końcu programu je wszystkie wypisze. Zadbaj o to, by bufor strumienia wejściowego był za każdym razem czyszczony. Wynik końcowy powinien również zawierać informacje czy wczytanie danej liczby się powiodło."
Otóż, gdy podam zamiast liczby np. literę to konsola pomija wszystkie etapy skryptu aż do końca bez możliwości wpisania kolejnych liczb, dodam, że korzystam z Visual Studio 2015 na W10, wygląda to tak :
http://imgur.com/rfYAgo0
Próbowałem nawet wklejać gotowy skrypt z internetu :

#include "stdafx.h"
#include <conio.h>
#include <iostream>
int main()
{
float a;
float b;
float c;

bool a_stan, b_stan, c_stan;



std::cin.clear();
std::cin.sync();
std::cin >> a;
a_stan = std::cin.good(); //sprawdzamy stan i zapisujemy do zmiennej


std::cin.clear();
std::cin.sync();
std::cin >> b;
b_stan = std::cin.good();

std::cin.clear();
std::cin.sync();
std::cin >> c;
c_stan = std::cin.good();


std::cout << "\n\nLiczba pierwsza to : " << a << "\tWczytano ? " << a_stan; //to tu musi byc
std::cout << "\n\nLiczba druga    to : " << b << "\tWczytano ? " << b_stan;
std::cout << "\n\nLiczba trzecia  to : " << c << "\tWczytano ? " << c_stan;

_getch();
return 0;
}
P-138082
carlosmay
» 2015-10-01 20:52:02
Może być koniczne zmienić
C/C++
std::cin.sync(); // na std::cin.ignore(999, '\n');
P-138085
DejaVu
» 2015-10-04 12:31:31
kod wyglada poprawnie na pierwszy rzut oka. moze visual c++ 2015 ma zmodyfikowana standardowa biblioteke i zachowanie metody cin.sync jest inne. sprobuj rozwiazania ktore zasugerowal kolega.
P-138152
« 1 »
  Strona 1 z 1