Plik CSV
Ostatnio zmodyfikowano 2015-12-04 20:15
dzarson Temat założony przez niniejszego użytkownika |
Plik CSV » 2015-12-04 17:27:00 Jak odczytać plik, którego każdy wers ma inną długość?
Chodzi mi o to, że czytając:
ifstream czytaj("kompr.csv"); int a; char c; while (!czytaj.eof()) { czytaj >> a >> c; }
Nie wiem kiedy natrafię na końcówkę linii. I jak wskakuje do nowego wersu to natrafiam na taki problem, że int wcztuje mi się do char, a ';' do int.
Z góry dziękuję za pomoc. :) |
|
carlosmay |
» 2015-12-04 17:49:18 Jak odczytać plik, którego każdy wers ma inną długość? |
Pokaż kilka linii z pliku. Wartość EOF powstaje gdy próbujemy odczytać z pliku, który się skończył, co za tym idzie: nawet jeśli wczytamy wszystko z pliku EOF nie wystąpi, dopiero przy następnej próbie odczytania (ostatnia linia wczyta się dwa razy). while( plik >> a >> b ) { cout << a << b; }
lepsze rozwiązanie. |
|
DejaVu |
» 2015-12-04 20:15:55 W zasadzie poprawnego parsowania CSV nie uzyskasz bazując jedynie na znaku przejścia do nowej linii. Jeżeli chcesz czytać plik wierszami to zapoznaj się najpierw z std::getline, opisany w rozdziale Podstawy obsługi plików, a następnie poczytaj o std::stringstream, który możesz wykorzystać do parsowania konkretnego wiersza. |
|
« 1 » |