Fehlersuche
-
hi leute!
in folgendem unterprogramm von mir finde ich den fehler nicht( er ist bei der sortierung)
der converter meldet immer: Lvalue required....
was mache ich da falsch?
bitte helft mir...
void liste(int points,namearray name) { fstream f; f.open("test.txt", ios::app); f <<endl<<points<<" "<<name; f.close(); clrscr(); FILE *datei; int i=1,j,z1=0,z2=0,z3=0,z4=0,n; char cText[100][255]={" "},cHilf[255]={" "}; datei=fopen("test.txt","r"); do { *fgets(cText[i], 253, datei); for(j=0;j<1;j++) { if(cText[i][1]==' ') { z1=cText[i][0]; cText[i][90]=z1; break; } if(cText[i][2]==' ') { z1=cText[i][1]; z2=cText[i][0]; cText[i][90]=z1+z2*10; break; } if(cText[i][3]==' ') { z1=cText[i][2]; z2=cText[i][1]; z3=cText[i][0]; cText[i][90]=z1+z2*10+z3*100; break; } if(cText[i][4]==' ') { z1=cText[i][3]; z2=cText[i][2]; z3=cText[i][1]; z4=cText[i][0]; cText[i][90]=z1+z2*10+z3*100+z4*1000; break; } cText[i][90]=10000; } i++; } while(!feof(datei)); fclose(datei); for(n=2;n<12;n++) { if(cText[n-1][90] > cText[n][90]) { cHilf=cText[n-1]; cText[n-1]=cText[n]; cText[n]=cHilf; n=1; } }
-
hier irgentwo...
for(n=2;n<12;n++) { if(cText[n-1][90] > cText[n][90]) { cHilf=cText[n-1]; cText[n-1]=cText[n]; cText[n]=cHilf; n=1; }
-
der converter meldet immer: Lvalue required....
was mache ich da falsch?Mit "converter" meinst du wohl Compiler?
Der gibt doch sicher auch die Zeilennummer mit aus, und wir sollen für dich diese Zeile nochmals rausfinden?
-
cHilf=cText[n-1];
cText[n-1]=cText[n];
cText[n]=cHilf;in all den zeilen einmal Lvalue required
-
cHilf und cText[] sind Characterarrays, welche sich nicht einfach zu zuweisen lassen (in anderen Sprachen mag das funktionieren). Dazu gibt es Stringfunktionen, z.B. memcpy/strncpy.
Außerdem klappt dein ganzer Ansatz nicht, cText[i][90] ist vom Typ char mit einem Wertebereich -128..127 und dahinein schreibst du Werte > 255.
Deine mühsam ermittelten Werte in cText[i][90] überschreibst du jedesmal abschließend mit 10000, was wohl nicht beabsichtigt ist.In der For-Schleife setzt du die Laufvariable neu, dies ist unschöner Stil.
Soweit ich den Code verstanden habe, willst du eine Datei mit 1 Integer pro Zeile nach ihrem Wert sortieren, dafür gibt es aber schon reichlich C-Möglichkeiten, zB
sscanf(zeile,"%d",&integerarray[i])
o.ä. mit anschließendem qsort.