Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wczytywanie pliku CSV

Ostatnio zmodyfikowano 2015-11-22 11:23
Autor Wiadomość
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.. :(
P-140479
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
C/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(); // zamiast wczytac koniec wiersz do 'z' po prostu go pobierz
       
    }
    // i rozpocznij nowa linie
}
 
P-140481
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.
P-140487
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?
P-140488
dzarson
Temat założony przez niniejszego użytkownika
» 2015-11-22 11:19:14
o 1920 znaków więcej.
P-140541
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.
P-140542
« 1 »
  Strona 1 z 1