Wczytywanie pliku CSV
Ostatnio zmodyfikowano 2015-11-22 11:23
dzarson Temat założony przez niniejszego użytkownika |
Wczytywanie pliku CSV » 2015-11-21 00:20:40 Hej,
Ponownie mam problem z wczytaniem danych z pliku CSV stworzonego przez Matlaba. Wczytywanym plikiem jest obraz 1920x1080. Program działa, ale zapętla się w pętli while (nie wiem dlaczego?). W pliku mam 2073600 liczb. Problem mam też z tym, że w wierszu są one zapisane liczba;liczba;...;liczba;liczba [ENTER] a ja odczytując liczba,char napotykam na końcu enter który tym char'em nie jest..
ifstream czytaj("obraz.csv"); if (czytaj.good()) { cout << "ok" << endl; } else { cout << "BLAD" << endl; } int z; //znak char a; int c=0; while (!czytaj.eof()) { czytaj >> z >> a; //cout << z; c++; } cout <<c<< endl; czytaj.close();
Będę wdzięczna za podpowiedź, bo już nie mam pomysłu.. :( |
|
carlosmay |
» 2015-11-21 01:09:32 Jeśli w pliku liczba rozpoczyna i kończy linię, a każda linia jest tak samo ułożona to powinno pomóc int z; char a; while( !czytaj.eof() ) { for( int i = 1; i <= 1980; i++ ) { plik >> z; if( i < 1980 ) plik >> z; else plik.get(); } }
|
|
dzarson Temat założony przez niniejszego użytkownika |
» 2015-11-21 11:37:28 Dziękuję :) Pomogło - już się nie zapętla, tylko nie wiem dlaczego czyta mi o jeden wiersz więcej niż powinno.. Wszystkie elementy z tego 'dodatkowego' wiersza mają wartość ostatniej 2073600 liczby. |
|
carlosmay |
» 2015-11-21 12:26:23 Być może koniec pliku jest w nowej linii? Może tak jest w pliku?
O ile więcej wczytuje znaków? |
|
dzarson Temat założony przez niniejszego użytkownika |
» 2015-11-22 11:19:14 o 1920 znaków więcej. |
|
dzarson Temat założony przez niniejszego użytkownika |
» 2015-11-22 11:23:03 Macierz w Matlabie ma 1080x1920, więc więcej się nie wpisało do CSV. Jak dla mnie zakończenie pliku powinno być na tym ostatnim znaku. Jak sprawdzałam plik CSV to jest właśnie 1080 wierszy, w 1081 nie ma liczb. |
|
« 1 » |