Qt C++ file kezelési probléma

Qt C++ file kezelési probléma
2016-12-28T11:52:33+01:00
2016-12-29T07:22:27+01:00
2022-10-15T22:31:27+02:00
*deleted_62914541
Sziasztok! 
Elkezdtem Qt creatort használni, de egy egy ilyen problémába ütköztem, szeretnék segítséget kérni hozzá.
VS C++ alatt működik az alábbi kód, Qt alatt viszont nem. Jelenleg az eredmény az hogy feltölt mindent - jellel. Mintha a fájlkezelés nem futna le... Mondjuk a VS alatt nem mint osztály van létrehozva, hanem egy eseményvezérlésbe van beleírva... Köszönöm előre is! :)
Beletettem, hogy ellenőrizze hogy nyitva van-e a file és amint nyomom a gombot leáll a program. Próbáltam a file nevével, a teljes útvonallal és a resources jelöléssel is, de semmi. A file pedig ott van a projekt könyvtárában..

Az osztályban ez van deklarálva:

std::string** adatD = new std::string*[5000];


A beolvasó függvény pedig ez:

void Egyed::loadN(std::string Filename) { std::string beolvas; std::string ideiglenes; int x = 0; int y = 0; for (int i = 0; i < 5000; i++) { adatD[i] = new std::string[150]; } for (int i = 0; i < 5000; i++) { for (int j = 0; j < 150; j++) { adatD[i][j].assign("-"); } // a mátrixot feltölti, vagyis az működik } std::ifstream import(Filename); if (!import.is_open()) { exit(EXIT_FAILURE); } while (std::getline(import, beolvas)) { std::istringstream isstr(beolvas); while (std::getline(isstr, ideiglenes, ';')) { adatD[x][y].assign(ideiglenes); y++; } y = 0; x++; } import.close(); }


Az eseményvezérlésnél pedig ez:

void ls::on_pushButton_clicked() { QString kiir; Egyed egyed; egyed.loadN("dataD.dat"); for (int i=0; i<50; i++) { for (int j=0; j<15; j++) { kiir = egyed.konvert(egyed.adatD[i][j]); //ez csak qstring-é alakítja ui->lineEdit->setText(kiir); ui->listWidget->addItem(kiir);
} } }
Mutasd a teljes hozzászólást!
Pedig az elérési úttal lesz a problémád. 
Ne GUI-ból, hanem parancssorból az adott mappába navigálva indítsd el a lefordított alkalmazást, valamint ellenőrizd, hogy valóban ott van-e a feldolgozandó fájl is.

Amennyiben jól értem, akkor abban biztos vagy, hogy az is_open részben megy rossz ágba. (kiírásokkal cout/clog, tudod tesztelni, bár a debugger használatát érdemes elsajátítani.)

C++-ban nem kell az adott blokk elején deklarálni a használt változókat, mint ahogy teszed pl az Egyed::loadN függvényed elején..
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd