Cześć, przejdę od razu do rzeczy. Mam zrobić na studia program który m.in. zapisuje i odczytuje wartości z pliku, tylko mam pewien problem: nie mam pojęcia jak działa odczyt. Szukałem na internecie, i znalazłem kod, który działaniem pasowałby do mojego programu, po lekkim zmodyfikowaniu. Problem w tym, że nie do końca go rozumiem, przez co nie potrafię go zmodyfikować. Dynamiczną alokację pamięci wykomentowałem, ale jak ktoś chce, to może także wytłumaczyć jak ona działa :)
Przykładowa zawartość pliku który ma odczytywać:
0;0,841471
1;0,939099
2;1,203012
Program:
int main(){
double pierwsza_liczba;
double druga_liczba;
int nowy_rozmiar;
FILE* plik;
plik = fopen("Wyniki.CSV", "r");
if (plik == NULL)
{
printf("Ups, cos nie dziala! Nie udalo sie otworzyc pliku CSV. Sprawdz kod i sprobuj zresetowac program\n");
}
printf("Wartosc prawdziwa: Wartosc po zaszumieniu:\n");
while (fgetc(plik) != EOF) //odczytuje znak i przesuwa kursor o 1
{
fseek(plik, -1, SEEK_CUR); // (plik,przesuniecie,pozycja[tutaj aktualna]) <--- Nie rozumiem co to ma robić, przesuwając o 1 w lewo. Jaki jest tego cel
fscanf(plik, "%lf;", &pierwsza_liczba);
printf("%lf ", pierwsza_liczba);
fscanf(plik, "%lf;", &druga_liczba);
printf("%lf\n", druga_liczba);
}
fclose(plik);
return 0;
}