Lesen Sie eine Textdatei in 2D-array

Also derzeit habe ich einen funktionierenden code, der in der Lage ist zu Lesen in einem text-Datei, die enthält ein 9x9-Brett jeder slot im 2D-array ist eine Zahl zwischen 1-9; jedoch, einige Ablagefächer haben ein '-' Zeichen vermischt, in die Sie nach dem Zufallsprinzip. Der einzige Weg, ich fand, dass ich konnte Lesen Sie alle Zeilen erfolgreich und drucken Sie Sie mit einem char sudoku[9][9] aber so stark wirkt sich auf andere Teile meines aktuellen Zuordnung.

Die Datei sollte nur werden 9 aufeinander folgende Zeilen etwa so:

123-56-89
4561-3--9

etc...

Könnte jemand mir zeigen, ein Weg, konnte ich erfolgreich Scannen in die text-Datei-Inhalt in einen INTEGER-2D-array anstelle eines char?

int main(){
 int i, j;
 char sudoku[9][9];
    char filename[100];

        printf("Please enter file name (W/O .txt): ");
        scanf("%s", filename);

        FILE *file1 = fopen(filename, "r");

        for(i=0;i<9;i++){
            for(j=0;j<9;j++){
                fscanf(file1,"%c\t", &sudoku[i][j]);
            }
        }

        for(i=0;i<9;i++){
            for(j=0;j<9;j++){
                printf("%2c", sudoku[i][j]);
                }
            printf("\n");
        }

fclose(file1);
}
Bitte zeigen Sie uns, was die Daten-Datei aussieht. Welchen Wert würden Sie erwarten, dass in dem array, wenn die Datei enthält einen Bindestrich? Vergessen Sie nicht, zu überprüfen, ob die Datei erfolgreich geöffnet wird, bevor das Lesen von es oder schließen es. Beachten Sie, dass die nachfolgende \t im fscanf() format wahrscheinlich nicht tun, was Sie erwarten. OTOH, solange Sie nicht geben /dev/tty oder etwas ähnliches wie der name der Datei, es wird nicht zu viel Schaden (es ist teuflisch, verwenden Sie nachgestellte Leerzeichen in einem string format, wenn die Eingabe interaktiv). Auf der ganzen obwohl, Sie könnte verwenden " %c" mehr sicher.
Ja die Datei die überprüfung nicht in dieses hier ist nur ein kleines segment der Haupt-code, die ich einfach nicht scheinen, um in der Lage sein, um dieses segment der code funktioniert wenn ich ein integer-array statt einem char-array

InformationsquelleAutor Titan | 2014-05-10

Schreibe einen Kommentar