Instrukcja switch nie działa
Ostatnio zmodyfikowano 2017-03-30 19:42
wojownik266 Temat założony przez niniejszego użytkownika |
Instrukcja switch nie działa » 2017-03-29 19:05:23 Witam. Po prawie rocznej przerwie w programowaniu powróciłem na łono natury i tak na szybkiego napisałem taki oto program: #include <iostream> #include <string> #include <fstream> using namespace std;
void dodaj_ksiazke( std::string & content, bool append = false ) { std::ofstream out; cout << "Podaj tytul ksiazki:"; getline( cin, content ); if( append ) out.open( "ksiegarz.txt", ios::app ); else out.open( "ksiegarz.txt", ios::app ); out << content; out << endl; out.close(); } int main() { string content; bool append = false; cout << "[1]. Dodaj ksiazke do listy" << endl; cout << "Podaj numer opcji:"; int sel = 0; cin >> sel; switch( sel ) { case 1: dodaj_ksiazke( content, append ); break; } cin.get(); return 0; }
Program w postaci jaki wyżej widać działa tak jak działa tzn. działa nie poprawnie bo nie wpisuje do pliku wczytanych danych. Poniżej wersja programu bez instrukcji switch który to program działa bez zarzutu. Problemem właśnie jest instrukcja switch… Czy ktoś mógłby rzucić okiem I powiedzieć dlaczego program bez switch działa tak jak należy a z instrukcją switch nie? Kompilator to code blocks 16.1 #include <iostream> #include <string> #include <fstream> using namespace std;
void dodaj_ksiazke( std::string & content, bool append = false ) { std::ofstream out; cout << "Podaj tytul ksiazki:"; getline( cin, content ); if( append ) out.open( "ksiegarz.txt", ios::app ); else out.open( "ksiegarz.txt", ios::app ); out << content; out << endl; out.close(); } int main() { string content; bool append = false; dodaj_ksiazke( content, append ); break; cin.get(); return 0; }
|
|
marcolo2307 |
» 2017-03-29 19:26:35 po wprowadzeniu opcji. Jeśli przed getline używałeś cin to musisz z tego skorzystać, aby usunąć znak nowej linii z bufora. |
|
wojownik266 Temat założony przez niniejszego użytkownika |
» 2017-03-29 19:34:06 Wielkie dzięki! Teraz śmiga aż miło:) |
|
j23 |
» 2017-03-30 11:07:55 @marcolo2307, wystarczy użyć metody ignore. |
|
marcolo2307 |
» 2017-03-30 17:29:25 |
|
jankowalski25 |
» 2017-03-30 17:52:48 |
|
marcolo2307 |
» 2017-03-30 19:42:42 @jankowalski25, hmm, dzięki :D |
|
« 1 » |