[C++] Pominięcie komendy getline po wciśnięciu odpowiedniego klawisza
Ostatnio zmodyfikowano 2017-03-20 18:44
Sumerechny Temat założony przez niniejszego użytkownika |
[C++] Pominięcie komendy getline po wciśnięciu odpowiedniego klawisza » 2017-03-20 17:53:45 Witam. Mam taki kod: void wczytaj_gre() { system( "cls" ); cout << "Wprowadz nazwe zapisu" << endl; cout << "Wroc (W)" << endl; cout << "*"; getline( cin, player_name ); string wroc = "W"; ifstream file(( savefile_path + "/" + player_name + ".txt" ).c_str() ); if( file.is_open() ) { file >> engine_switch; file >> map_switch; file >> sub_map_switch; file >> player_name; return; } else { if( player_name == wroc ) { engine_switch = 0; return; } else { system( "cls" ); cout << "Nie mozna znalezc twojego zapisu gry." << endl; system( "pause" ); wczytaj_gre(); } } return; }
Jest to funkcja wczytujaca dane z pliku .txt. Czy jest mozliwosc przerobienia jej tak, ze podczas getline jesli zostanie wcisniety odpowiedni klawisz, np. backspace, to program pominie czekanie na player_name i przejdzie do return? To co mam teraz dziala, ale moze powodowac konflikty w przypadku gdy istnieje W.txt |
|
pekfos |
» 2017-03-20 18:24:37 Możesz wprowadzić pusty napis, naciskając od razu enter. |
|
Sumerechny Temat założony przez niniejszego użytkownika |
» 2017-03-20 18:44:23 Dzięki! Nie wiedziałem, że tak działa getline. Wszystko śmiga jak należy :D Zostawiam kod dla potomnych. void load_game() { system( "cls" ); cout << "ENTER THE SAVE FILE NAME (SAME AS YOUR CHARACTER NAME) OR PRESS ENTER TO GO BACK TO MAIN MENU: "; fflush( stdin ); getline( cin, player_name ); string name = player_name; ifstream file(( savefile_path + "/" + player_name + ".txt" ).c_str() ); if( file.is_open() ) { file >> engine_switch; file >> map_switch; file >> sub_map_switch; file >> player_name; return; } else { if( player_name == "\0" ) { engine_switch = 1; return; } else { system( "cls" ); cout << "COULDN'T OPEN THE SAVE FILE" << endl; system( "pause" ); load_game(); } } engine_switch = 1; return; }
|
|
« 1 » |