[C++] problem z wczytaniem pliku, jeśli przy pierwszej próbie nastąpił błąd
Ostatnio zmodyfikowano 2017-06-09 23:39
ws89 Temat założony przez niniejszego użytkownika |
[C++] problem z wczytaniem pliku, jeśli przy pierwszej próbie nastąpił błąd » 2017-06-09 22:17:26 Dobry wieczór, dlaczego jeśli raz źle wpiszę nazwę pliku z którego chce wczytywać dane, to w kolejnej próbie nie widzi tego pliku nawet jeśli wpiszę go poprawnie ? Proszę o wskazówki, ale rozwiązanie z wyjaśnieniem również mile widziane :) Pozdrawiam fstream dane; string nazwa;
do { cout << "Z jakiego pliku wczytywac dane?\n"; cin >> nazwa; dane.open( nazwa.c_str() ); if( !dane.good() ) { cerr << "Problem z otwarciem pliku " << nazwa << endl; }; } while( !dane.good() );
|
|
latajacaryba |
» 2017-06-09 22:31:00 Spróbuj wstawić to std::cin.sync(); przed cin |
|
ws89 Temat założony przez niniejszego użytkownika |
» 2017-06-09 22:39:49 do { cout << "Z jakiego pliku wczytywac dane?\n"; cin.sync(); cin >> nazwa; dane.open( nazwa.c_str() ); if( !dane.good() ) { cerr << "Problem z otwarciem pliku " << nazwa << endl; }; } while( !dane.good() );
próbowałem tak oraz próbowałem std::cin.sync(); i oba nie działają |
|
Chowan |
» 2017-06-09 23:22:03 fstream dane; string nazwa; int main() { do { dane.ignore(); cout << "Z jakiego pliku wczytywac dane?\n"; cin >> nazwa; dane.open( nazwa.c_str() ); if( !dane.good() ) { cout << "Problem z otwarciem pliku " << nazwa << endl; } else cout << "Plik otwarty."; } while( !dane.good() ); |
|
carlosmay |
» 2017-06-09 23:39:08 #include <iostream> #include <string> #include <fstream>
int main() { std::string fileName; std::fstream file; while( std::getline( std::cin, fileName ) ) { file.open( fileName.c_str(), std::ios::in ); if( file ) { break; } std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); } std::string tmp; while( std::getline( file, tmp ) ) { std::cout << tmp << '\n'; } } |
|
« 1 » |