for schleife funktioniert nicht
-
Hallo, ich habe ein dyn. Array und wollte es mit Daten einer Datei bestücken. Zuerst lese ich im Header ein paar Daten (ka,ke,y,x) aus und lege die Größe für data (das Array) fest. Dabei gehe ich mit seekg und read for und es funktioniert. Leider wird das Array nicht mit den Daten vollgeschrieben. Es ist als ob die for-Schleife nicht funktioniert. Kann mir jemand helfen ich sehe den Fehler nicht.
DynamicArray<short> data; ifstream dat_in; short i, ka, ke, x, y; if (OpenDialog1->Execute()) { dat_in.open(OpenDialog1->FileName.c_str() ,ios::binary|ios::in); data.Length=((ke-ka)*x*y)-5; //Daten aus dem Header der Datei für Arraygröße for (int e=0; e==((ke-ka)*x*y)-4; e++) { dat_in.seekg(e*sizeof(short),ios_base::beg); dat_in.read((char*)&i,sizeof(short));// Lesen Inhalt Adresse i data[e]=i; } dat_ein.close(); }
-
Ist dir klar, dass die Schleife ausgeführt wid, solange die Bedingung wahr ist, nicht, bis sie wahr wird?
-
Wie läßt sich das Problem lösen? Ich grübele schon eine Weile und finde keine brauchbare Lösung.
-
Hast du meine Frage nicht gelesen oder nicht verstanden?
for(int e=0; e==10; ++e)Diese Schleife wird nicht ausgeführt.
Jetzt klar?
-
Jetzt funktioniert es. Danke!
-
for(int e=0; e==10; ++e)Die for Schleife wird nur ausgeführt, wenn e gleich 10 ist, in dem Fall also nie.
for(int e=0; e<=10; ++e)Die for Schleife wird nur ausgeführt wenn e kleiner gleich 10 ist,
ist e gleich 11 dann nicht mehr.