Witam
Przy pisaniu jednego z projektów na studiach natrafiłem na dziwne zachowanie się funkcji printf. Mam taki oto kawałek kodu:
while (liczba<4)//rozstawia 4 statki
{
printf("Podaj wspolrzedna: \n");
poczatek=fgets(wsp, 3, stdin);
int i; int j;
for (i=0; i<10; i++)
{
for (j=0; j<10; j++)
{
porownanie=strcmp(poczatek,koordynaty[i][j]);
if (porownanie == 0)
{//jak znajdzie pasujace koordynaty
if (plansza_gry_gracz[i+2][j+2] != ' ') //sprawdza czy pole nie jest juz zajete
{
printf("\033[1;31mWSPOLRZEDNA JEST ZAJETA LUB NIEWLASCIWA\N PODAJ INNA\033[0m\n");
}
else
{
printf("\033[1;32mDODANO WSPOLRZEDNA\033[0m\n");
plansza_gry_gracz[i+2][j+2]=M1;//umieszcza sybol jendomasztowca pod wskazanymi wspolrzednymi
liczba++;
}
}
}
}
}//koniec whila
Niepokoi mnie to, że za każdym razem funkcja printf("Podaj wspolrzedna: \n"); jest wyświetlana dwa razy, chociaż powinna być tylko raz. Jedyna pętla w której występuje jest właśnie ten while. Macie może pomysł co może być przyczyną takiego zachowania. Sprawdzane na dwóch niezależnych systemach i kompilatorach. efekt taki sam.
Pozdrawiam