Juhuuu neues Problem..Also ich bin schon fast fertig mit dem ganzen Programm und beim Testen is mir was aufgefallen:
Wenn ich in meiner CSV, die vorher so aussah:
nun das "vs" in "gegen" tausche:
kackt das Programm ab.
Die Länge von der geänderten Zeile dürfte somit von vorher 17 Chars/136Bytes auf 20 Chars/160Bytes gestiegen sein.
Die Variablen müssten doch eigentlich groß genug sein (s.u.)?!
Und was ich noch festgestellt habe: Wenn die geänderte Zeile maximal 19Zeichen lang ist, dann stürzt das Programm nicht ab, die nachfolgenden Zeilen sind bei der Ausgabe jedoch sozusagen alle "verschoben"; wahrscheinlich um den Wert, um den die Anzahl der Zeichen von der geänderten Zeile gewachsen ist:
Das sollte ja eigentlich Indiz genug sein meint man, aber ich finde nichts
hier nochmal der Code dazu:
Wenn ich in meiner CSV, die vorher so aussah:
Code:
bisher vollendete Runde;1
Name der Mannschaften;Ergebnis Runde 1
MA 1 vs MA 2;8;1
MA 1 vs MA 3;8;5
MA 1 vs MA 4;8;5
MA 2 vs MA 3;8;5
MA 2 vs MA 4;8;5
............
nun das "vs" in "gegen" tausche:
Code:
bisher vollendete Runde;1
Name der Mannschaften;Ergebnis Runde 1
MA 1 gegen MA 2;8;1
MA 1 vs MA 3;8;5
MA 1 vs MA 4;8;5
MA 2 vs MA 3;8;5
MA 2 vs MA 4;8;5
kackt das Programm ab.
Die Länge von der geänderten Zeile dürfte somit von vorher 17 Chars/136Bytes auf 20 Chars/160Bytes gestiegen sein.
Die Variablen müssten doch eigentlich groß genug sein (s.u.)?!
Und was ich noch festgestellt habe: Wenn die geänderte Zeile maximal 19Zeichen lang ist, dann stürzt das Programm nicht ab, die nachfolgenden Zeilen sind bei der Ausgabe jedoch sozusagen alle "verschoben"; wahrscheinlich um den Wert, um den die Anzahl der Zeichen von der geänderten Zeile gewachsen ist:
Das sollte ja eigentlich Indiz genug sein meint man, aber ich finde nichts
hier nochmal der Code dazu:
Code:
char speicher[1024];
char einteilung_r1[24][256];
int arrayergebnisse_r1[24][2]={0};
..........
if(runde==1){
//überspringt die ersten 3 Zeilen
for(i=0;i<3;i++){
fgets(speicher,1024,turnierliste);
}
//liest ab der 4. Zeile die nächsten 24 ein
for(i=0;i<24;i++){ //speichert jede Zeile einmal in einem String
fgets(speicher,1024,turnierliste);
while(speicher[k]!=';'){ //wenn ";" im string gefunden wird (d.h. nach Mannschaftsname), wird der string mit "\0" abgeschlossen
k++;
}
speicher[k]='\0';
strcpy (einteilung_r1[i],speicher); //eingelesene Mannschaftseinteilung wird in array einteilung für runde 1 kopiert
sscanf(&speicher[k+1],"%d;%d",&arrayergebnisse_r1[i][0],&arrayergebnisse_r1[i][1]);
}