Witam. Potrzebuje pomocy z programem. Musze stworzyc program który pobiera z pliku liczbe i przesuwa się w pliku o tyle liczb ile wynosi pobrana wczesniej liczba (np. jeślli liczba to 5 to o 5 liczb do przodu a jeśli -1 to o 1 do tyłu) i tak do dopóki nie natrafi na 0. Dodam, że liczby są jedna pod drugą. Pomożecie??
Pewnie, w czym masz problem?
Nie wiem jak ma to wyglądać, próbowałem to sam zrobić przy uzyciu funkcji fseek ale pobiera tylko pierwsza liczbe i nie pobiera juz liczb z kolejnych linii. Zatrzymuje się na pierwszej. Wiem ze mozna to zrobić z fseek i rewind ale nie wiem jak.
Wczytaj wszystkie do tablicy i skacz po tablicy.
A mógłbyś napisać jak to robić bo jestem jeszcze w tym całkowicie zielony?
Wczytaj wszystkie liczby w pętli wywołując fscanf
. Po każdym udanym odczycie dodawaj do tablicy - na chwilę obecną zainteresuj się malloc
i realloc
i załóż, że realloc
w pętli jest akceptowalnym rozwiązaniem.
TomekAtomek napisał(a):
A mógłbyś napisać jak to robić bo jestem jeszcze w tym całkowicie zielony?
No po co się porywasz z motyką na słońce? Naucz się jak pisać program typu hello world, wczytwyanie znaków itp. Potem dopiero rób to co opisujesz. Chyba, że jesteś kolejnym, który ma oddać zaliczenie i się obudził z nauką miesiąc przed? xD
A czy dałoby radę to zrobić bez tego tylko z operacją na pliku uzywając fseek i rewind?
Tak, ale to znacznie więcej roboty, bo masz liczby jako ciągi znaków, a nie liczby. Zresztą wtedy wygodniej by było raczej zmapować plik na pamięć...
W pliku jest 15 liczb i kursor w pliku przesuwa sie o tyle ile wynosi dana liczba. Konczy działanie gdy trafi na 0.