Witam. Piszę program, który ma za zadanie zamienić kolejność wierszy w pliku tekstowym. Mam np: taki plik tekstowy:
Adam
Janek
Blazej
Robert
Przemek
Gienek
i po uruchomieniu programu powinienem otrzymać coś takiego:
Gienek
Przemek
Robert
Blazej
Janek
Adam
Napisałem coś takiego:
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
#include<errno.h>
int main(void)
{
FILE *wsk;
int i = 0;
int j = 0;
int k, l;
char c;
char tab[10][41];
char *t[10];
if ((wsk = fopen("plik.txt", "r")) == NULL)
fprintf(stderr, "Blad otwarcia pliku: %s\n", strerror(errno));
else
{
while (((c = fgetc(wsk)) != NULL) && (c != EOF))
{
if (c == '\n')
{
i++;
j = 0;
}
tab[i][j] = c;
j++;
}
}
for (k = 0; k < i; k++)
{
t[k] = tab[k];
}
if (fclose(wsk) != 0)
{
puts("Blad zamkniecia pliku");
exit(1);
}
if ((wsk = fopen("plik.txt", "w")) == NULL)
fprintf(stderr, "Blad otwarcia pliku: %s\n", strerror(errno));
else
{
for (k = i; k = 0; k--)
{
fputs(t[k], wsk);
}
}
if (fclose(wsk) != 0)
{
puts("Blad zamkniecia pliku");
exit(1);
}
getchar();
getchar();
return 0;
}
Niestety program nie działa prawidłowo. Po uruchomieniu go plik.txt jest pusty. Co robię źle?