Mam zrobić zapis gry w kółko i krzyżyk. Mam zapisać stan gry do pliku (obecny ruch, nicki graczy, i stan tablicy).
Potrzebuję to teraz odczytać wierszami, gdyż przykładowo w 1 wierszu w pliku mam nick1 gracza, w drugim wierszu mam nick2 gracza, w 3 wierszu mam licznik ruchu a w kolejnych wierszach odpowiednio elementy tablicy, potrzebne do wypisania planszy. Zapis wygląda następująco:
void zapis()
{
FILE *wskaznik_na_plik;
wskaznik_na_plik = fopen(nazwa,"w");
fputs(nick1,wskaznik_na_plik);
fputs("\n",wskaznik_na_plik);
fputs(nick2,wskaznik_na_plik);
fputs("\n",wskaznik_na_plik);
fprintf(wskaznik_na_plik,"%d",licznik);
fputs("\n",wskaznik_na_plik);
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
fprintf(wskaznik_na_plik,"%d\n",tab[i][j]);
}
}
fclose(wskaznik_na_plik);
}
Chcę potem przy "wczytaniu gry" użyć switcha, który będzie wczytywał do zmiennych w programie treści danych wierszy w pliku, żebym mógł już później na luzie odpalić funkcje, odpowiedzialne za rozgrywkę. Mam coś takiego:
void wczytajgre()
{
FILE *wskaznik_na_plik;
int nr_linii=1;
char linia;
char nazwa_pliku;
printf("Podaj nazwe pliku: ");
scanf("%s",nazwa_pliku);
wskaznik_na_plik = fopen(nazwa_pliku,"r");
while(fgets(linia,100,wskaznik_na_plik))
{
switch(nr_linii)
{
case 1: nick1[50] = nr_linii; break;
case 2: nick2[50] = nr_linii; break;
case 3: licznik = nr_linii; break;
case 4: tab[0][0]= nr_linii; break;
case 5: tab[0][1]= nr_linii; break;
case 6: tab[0][2]= nr_linii; break;
case 7: tab[1][0]= nr_linii; break;
case 8: tab[1][1]= nr_linii; break;
case 9: tab[1][2]= nr_linii; break;
case 10: tab[2][0]= nr_linii; break;
case 11: tab[2][1]= nr_linii; break;
case 12: tab[2][2]= nr_linii; break;
}
nr_linii++;
}
fclose(wskaznik_na_plik);
[...] << tutaj dalsza część rozgrywki
Nie pasuje mi tutaj funkcja fgets, bo w tutorialu p. Zelenta była funkcja getline. Coś w zamian?
Proszę o pomoc