Problem z odczytem pliku

0

Witam, mam taki oto wycinek kodu.

while (fscanf(plik, "(%d,%d),(%d,%d)", &ax,&ay,&bx,&by) != EOF)
{
	printf("(%d,%d),(%d,%d)\n", ax,ay,bx,by);
}

Problem mam taki, że:

  1. Odczytuje w nieskończoność 1szą linię pliku i w nieskończoność też ją wyświetla. Każda linika ma taki sam format jak wczytuję i korzystam z fscanf, bo łatwo jest to sobie formatować. Do wczytania jest nieokreślona bliżej liczba takich linijek. To czego chciałbym to żeby fscanf odczytywało dalej, linijka po linijce ten plik. Czy istnieje w ogóle taka możliwość ?
1

A jak wygląda plik?
Prawdopodobnie brakuje ci spacji na końcu formatu:
http://ideone.com/qDKBrf

0

(2,1),(3,3)
(3,3),(1,0)
(0,0),(5,4)
(2,3),(2,1)

0

Tak, dokładnie! Brakowało spacji. Dzięki wielkie Dragon!

0

lepiej dać:

while (fscanf(plik, "(%d,%d),(%d,%d)", &ax,&ay,&bx,&by) == 4)

Będziesz odporny na błędy w pliku.

0

A co oznacza tak właściwie [code] ==4 [/code] ? Chodzi o wczytanie 4 liczb do zmiennych ?

0
młody_wyjadacz napisał(a):

A co oznacza tak właściwie [code] ==4 [/code] ? Chodzi o wczytanie 4 liczb do zmiennych ?

scanf zwraca liczbę poprawnie dopasowanych formatów (tzn. ile rzeczy udało się poprawnie wczytać do zmiennych). Jeżeli są 4 formaty (4 zmienne w konsekwencji) i 4 zostaną dopasowane (dane wczytane do 4 zmiennych) to znaczy, że wszystko jest ok.

Dokumentacja Twoim przyjacielem: http://www.cplusplus.com/reference/cstdio/scanf/

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