Zapis tablicy do pliku

0

Witam,
Staram się napisać funkcje która zapisze mi moja tablice 2D znaków do pliku tekstowego.

char saveFile(char *tab, char* output) {
    FILE *file = fopen(output, "w");
    fwrite(tab, sizeof(tab), sizeof(tab), file);
    fclose(file);
}

Napisałem funkcje jednak z tego co zauważyłem zapisuje ona tylko znaki z tablicy z indeksu 0

0

Funkcja fwrite przyjmuje jako drugi argument wielkość pojedynczego elementu tablicy w bajtach, a jako trzeci ilość elementów do zapisu.
Powinno to mniej więcej wyglądać tak:

fwrite(tab, sizeof(char), sizeof(tab)/sizeof(char), file);

Edit:
Zapomniałem, że to jest przekazywane do funkcji i nie musi być wcale statyczne. Można dodać dodatkowy parametr z długością tablicy, np.

void saveFile(char *tab, char* output, size_t count) {
    FILE *file = fopen(output, "w");
    fwrite(tab, sizeof(char), count, file);
    fclose(file);
}
0

for( int i = 0; i < tab_len; i++ ) fprintf( file, "%s\n", tab[i] );

pzdr.

1 użytkowników online, w tym zalogowanych: 0, gości: 1