Program nie wchodzi do funkcji wczytaj(); Dlaczego?
Nie chce nawet wydrukować na ekran 1 polecenia w funkcji czyli printf("ahoj 123");
Funkcja wczytaj_rozmiar() działa, a wygląda niemal identycznie.
Nazwy plików z argumentów wiersza poleceń są zgrywane prawidłowo do struktury.
nazwa to np. tutaj.txt
void wczytaj_rozmiar(struct struktura_planszy *s, struct struktura_argumentow_wiersza_polecen *p, int *rezultat){
FILE *mojplik; //deklaruje wskaznik na zmienna FILE
mojplik = fopen(p->nazwa_pliku1, "r");
if (mojplik == NULL){
printf("Blad otwarcia pliku1234\n");
*rezultat = 2;
exit(EXIT_FAILURE);
}
printf("tutaj bylem\n");
fscanf(mojplik, "%d", &s->liczba_wierszy);
fscanf(mojplik, "%d", &s->liczba_kolumn);
printf("tutaj tez jestem\n");
if (fclose(mojplik) != 0){
printf("Blad przy zamykaniu pliku12345\n");
*rezultat = 2;
}
}
void wczytaj(struct struktura_planszy *s, struct struktura_argumentow_wiersza_polecen *p, int *rezultat){
printf("ahoj 123");
FILE *mojplik; //deklaruje wskaznik na zmienna FILE
mojplik = fopen(p->nazwa_pliku1, "r");
printf("ahoj gjlk123");
if (mojplik == NULL){
printf("Blad\n");
printf("Blad otwarcia pliku\n");
*rezultat = 2;
}
//dalsza część fukcji......
}
struct struktura_planszy{//Struktura przechowuje wszystkie dane jakie będą potrzebne przez program i mogą być odczytane z pliku zapisu
int liczba_wierszy; //Przechowuje informacje o ilości wierszy z których składa się plansza
int liczba_kolumn; //Przechowuje informacje o ilości kolumn z których składa się plansza
int **ryby; //Przechouwje informacje o ilości ryb na każdym polu
int **pingwiny_na_polu; //Przechouwje informacje o tym który gracz stoi na danym polu lub czy jest ono puste
int liczba_twoich_pingwinow_na_planszy; //Przechowuje informacje o tym ile pingwinów gracza znajduje się w tej chwili na planszy
int wynik[9]; //Przechowuje inforamcje o wyniku gracza
char identyfikator[9][51]; //identyfikator gracza
int numer_gracza[9]; //Przechowuje informacje o numerze gracza
};
struct struktura_argumentow_wiersza_polecen{//Struktura przechowuje dane przekazywane programowi przez argumenty wiersza poleceń
int pingwiny_max; //Przechowuje informacje o liczbie pingwinów, które muszą zostać rozstawione na planszy
char ozn_fazy[51]; //Przechowuje informacje o fazie w której został uruchomiony program
char nazwa_pliku1[51]; //Przechowuje informacje o nazwie pliku zapisu z którego będą odczytywane dane
char nazwa_pliku2[51]; //Przechowuje informacje o nazwie pliku zapisu do którego będą zapisywane dane
};
int main(int argc, char** argv){
//Pomijam kod odpowiedzialny za zgrywanie argumentów wiersza poleceń do struktury struktura_argumentow_wiersza_polecen
struct struktura_planszy plansza;
printf("tutaj23\n");
wczytaj_rozmiar(&plansza, &argumenty, &rezultat);
printf("tutaj3434\n");
printf("%d %d\n", plansza.liczba_wierszy, plansza.liczba_kolumn);
//dynamicznie przydzielam pamięć plansza.ryby
plansza.ryby = (int**) malloc(plansza.liczba_wierszy * sizeof (int *));
for (int i = 0; i < plansza.liczba_wierszy; i++){
plansza.ryby[i] = (int*) malloc(plansza.liczba_kolumn * sizeof (int));
}
//dynamicznie przydzielam pamięć plansza.pingwiny_na_polu
plansza.pingwiny_na_polu = (int**) malloc(plansza.liczba_wierszy * sizeof (int *));
for (int i = 0; i < plansza.liczba_wierszy; i++){
plansza.pingwiny_na_polu[i] = (int*) malloc(plansza.liczba_kolumn * sizeof (int));
}
printf("tutaj777\n");
wczytaj(&plansza, &argumenty, &rezultat);
printf("tutaj\n");