Poziom 1 Obsługa strumienia wejściowego
Ostatnio zmodyfikowano 2019-10-08 19:51
Jasieg_T |
czesc ja nowy na forum » 2018-08-13 13:18:50 czy dobrze zrobiłem zadanie ? faktycznie troche niejasno są opisane niektóre funkcje np. ta std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); pare rzeczy musiałem sie domyślać głownie dlatego ze nie były potwierdzone pełnym przykładem w napisanym programie(w sensie nie było wglądu na skrypt, nie wiem czy to sie tak nazywa ale w sensie tekst:)) tutaj mój program dodam że ucze sie programowania od dwoch dni. #include <iostream>
int main() { //zmienne dla bledów w programie bool AA; bool BB;
// zmienna a int a;
std::cin >> a ; AA = std::cin.fail();
// usuwanie b³edów zmiennej a
std::cin.clear() ; std::cin.ignore(1000,'\n') ;
//zmienna b int b; std::cin >> b ; BB=std::cin.fail();
//usuwanie b³êdoww zmiennej b
std::cin.clear() ; std::cin.ignore(1000,'\n') ;
//koñcowe informacje std::cout<< "liczba o oznaczeniu a= " << a << std::endl; std::cout<< "liczba o oznaczeniu b= " << b << std::endl<< std::endl ; std::cout<<"bledy w pierszym etapie ="<< AA<<std::endl; std::cout<<"bledy w drugim etapie ="<< BB<< std::endl<< std::endl;
zapomniałem o 3 zmiennej ale program dziala :) Nie rozumiem troche działania std::cin.fail jak to jest ? wykrywa błedy w całym programie czy jak ? postanowiłem dodać do kazdego typowania liczby bo w koncu nie mogłem zrozumieć jak to działą. Do ktorego momentu wykrywa błedy i skad mam to wiedzieć ? nie znalazlem nic w lekcji kiedy pokazuje numer 1 to jest bład rozumiem ?
|
|
pekfos |
» 2018-08-13 19:51:28 Nie rozumiem troche działania std::cin.fail jak to jest ? wykrywa błedy w całym programie czy jak ? | fail nie wykrywa żadnych błędów. W programie pojawił się nowy zapis: std::cin.fail(), który jest metodą należącą do strumienia std::cin. Za jego pomocą możemy odczytać informację, czy wystąpił bład w trakcie wykonywania którejś z poprzednich operacji. Jeżeli coś zakończy się niepowodzeniem, strumień przechodzi w stan błędu i dalsze operacje na strumieniu są ignorowane. |
Do ktorego momentu wykrywa błedy i skad mam to wiedzieć ? |
Jak wyżej, i może to? Podstawy programowania - teoria i terminologiaKomputer jest urządzeniem pracującym w pierwotnym założeniu sekwencyjnie. |
I może taka prosta obserwacja, że instrukcje w programie wykonują się po kolei (nie chce mi się szukać lepszego cytatu z kursu, jeśli istnieje). Skoro operacje mogą zakończyć się błędem i masz instrukcję do odczytania, czy wystąpił błąd, to nie powinno być problemu wiedzieć, co kiedy należy użyć. |
|
Jasieg_T |
» 2018-08-14 19:56:35 Dobra dzięki byłem troche przemeczony i nie rozumiałem tego :) jednak czasami przydaje sie jak ktoś spojrzy na sytuacje z innej perspektywy jakoś w głowie to sobie komplikowałem :) |
|
Przemek978 Temat założony przez niniejszego użytkownika |
» 2018-08-23 16:47:56 przecież kod masz podany |
|
Przemek978 Temat założony przez niniejszego użytkownika |
» 2018-08-23 16:53:32 perkos mógłbyś podać kod jak to wygląda byłbym wdzieczny |
|
pekfos |
» 2018-08-23 17:06:24 O jakim kodzie ty mówisz? mógłbyś jeszcze napisać gdzie w kodzie to wstawić bo wyskakuje mi błąd bool bCzyBlad |
Gdzie jest ten kod, w którym był błąd i jak brzmiał dokładnie komunikat błędu? |
|
konrad1806 |
zadanie z lekcji 1 - obsluga strumienia wejsciowego » 2019-10-08 19:51:08 Witam, jestem tu nowy, dopiero co dolaczylem do kursu, czy dobrze zrozumialem te lekcje i czy tak ma ten program wygladac i dzialac ?
#include <iostream> #include <limits>
int main () { float a; float b; float c;
std::cout << "Podaj liczbe a : "; std::cin >> a; bool aCzyBlad = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); std::cout << "Czy cos nawalilo ? " << std::cin.fail() << std::endl;
std::cout << "Podaj liczbe b : "; std::cin >> b; bool bCzyBlad = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); std::cout << "Czy cos nawalilo ? " << std::cin.fail() << std::endl;
std::cout << "Podaj liczbe c : "; std::cin >> c; bool cCzyBlad = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); std::cout << "Czy cos nawalilo ? " << std::cin.fail() << std::endl;
std::cout << "Liczba a = " << a << std::endl; std::cout << "Liczba b = " << b << std::endl; std::cout << "Liczba c = " << c << std::endl; return 0; }
Z gory dziekuje za odpowiedz i podpowiedz ... |
|
1 « 2 » |