Funkcja fseek() i przejście na początek linii

0

Witam!

Mam pytanie, w jaki sposób mogę przejść do początku wiersza w pliku, wiem, że potrzebuję do tego funkcji fseek(). Chodzi o to, że mój program ma sprawdzić, czy w danej linii znajduje się '0', jeżeli tak, to kończy program, jeżeli nie, to wykonuje dalej program. Wszystko pięknie ładnie, tylko w razie, jakby wczytana liczba była jednak różna od zera, to gubi jedną wartość. Linia zakończona jest znakiem '\n', więc przejściem nowej linii. Ogólne zakończenie pliku jest zasygnalizowane zerem '0'.

Przykład:

1 2 41 5125 2 3
0

i w tym momencie kończy pracę.
inny przykład:

1 2 2
323 3
23421 412 1
0

Kończy pracę.

dodanie znaczników <code class="c"> - @furious programming

0

Zależy, czy zależy ci na tym, by wiedzieć, że była nowa linia, czy nie. Jeśli nie, to sobie juz widzę odpowiedziałeś, jesli chcesz wiedzieć, to wczytujesz fgets-em.

0
 scanf("%d",&liczba)!=0

Nie jest dobrym rozwiązaniem tego problemu. Funkcja scanf zwraca liczbę poprawnie wczytanych argumentów. Zero też jest liczbą, więc funkcja zwróci 1, jak i również dla innych liczb. Prócz sprawdzenia, czy wczytałeś liczbę należy jeszcze sprawdzić, czy ta liczba jest różna od zera. Np.:

if(scanf("%d", &liczba) != 0 && liczba != 0)
{
    //Kod
} 

Operator && sprawdza od lewej strony, więc najpierw pobierze wartość i zapisze ją jako liczba, a następnie zostanie sprawdzone, czy liczba jest różna od zera.

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