zapis ciągu znaków z pliku do tablicy

0

Chcę pobrać ustawienia figur z pliku liczby.txt który wyglada tak:

Ustawienie figur:

Biale:
Pion A2 B2 C2 D2 E2 F2 G2 H2
Wieza A1 H1
Skoczek B1 G1
Goniec C1 F1
Hetman E1
Krol D1

Czarne:
Pion A7 B7 C7 D7 E7 F7 G7 H7
Wieza A8 H8
Skoczek B8 G8
Goniec C8 F8
Hetman E8
Krol D8

kod który stworzyłem:

void ustawienie_figur()
  {
  FILE *ustawienie;
    char ustawienia_figur[20];
    
    printf("Podaj nazwę pliku z ustawieniami figur:\n");
     scanf("%s", ustawienia_figur);
     ustawienie=fopen(ustawienia_figur,"r");  
       
int i=0;
int j;
char a[200][400];// nie wiem  dokładnie dlaczego ta tablica musi być dwuwymiarowa?

while(EOF!=(fgetc(ustawienie))) 
{
    fscanf(ustawienie,"%s", &a[i]); 
    i++;
    
}
fclose(ustawienie);
j=i;
i=0;
while(i<j)  
{
printf("%s \n"  , a[i]);
if (a[i] == 'Wieza')  // cos tutaj mam źle prawdopodobnie przez to ze mam źle zdefiniowany rozmiar tablicy
{printf("W tablicy a pod numerem %d znajduje sie wieza", i);
}
i++;
}
}

jakby ktoś mógłby mi to pomóc poprawić aby zadziałał ostatni if

0

Twój błąd polega na nieznajomości odstaw języka w którym piszesz po prostu.

  1. W pojedynczych apostrofach np. 'a' zapisuje się ZNAKI. Dodaj: pojedyncze znaki!
    napisanie 'Wieza' to błąd.
  2. Do porównywania ciagów znaków (tzw c-stringów) nie uzywa się operatora == tylko odpowiedniej funkcji (np. strcmp()).
  3. Abstrahując od twojego braku znajomosci języka, logika tego programu też kuleje. Moim zdaniem powinieneś to wczytywać choćby za pomocą getline() jakiegoś, bo inaczej ciężko będzie się coś z tej tablicy wyciągać.
  4. Jeśli nie wiesz czemu ta tablica musi być dwuwymiarowa to może czas wrócić na SAM POCZĄTEK książki/kursu z którego się uczysz? Albo darować sobie programowanie...

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