• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Fscanf wypisuje same 0

0 głosów
216 wizyt
pytanie zadane 7 stycznia 2021 w C i C++ przez kvbq Obywatel (1,490 p.)

Próbuje napisać program, który wczytuje dane z pliku jednak funkcja fscanf daje mi do zmiennej same 0.

FILE * file = fopen("a.txt","r");
    double odczyt[2][5];

    for(int i = 0; i<2; i++)
    {
        for(int q = 0; q<iloscWierszy; q++)
        {
            double x;
            fscanf(file, "%f", &x);
            printf("aa%f\n", x);
            odczyt[i][q] = x;
        }
    }

Dane w pliku wyglądają następująco:

1.0 1.0
2.0 2.0
3.0 3.0
4.0 4.0
5.0 5.0

1
komentarz 7 stycznia 2021 przez Oscar Nałogowiec (29,360 p.)
Warto też dopisać sprawdzanie wyniku funkcji fscanf. Zwraca ona liczbę wczytanych elementów, w tym przypadku powinno to być 1.

1 odpowiedź

+1 głos
odpowiedź 7 stycznia 2021 przez Mateusz1223 Bywalec (2,440 p.)
wybrane 7 stycznia 2021 przez kvbq
 
Najlepsza
Myślę, że problem polega na tym, że wczytujesz do zmiennej typu double, float'a. Zmień typ zmiennej x i tablicy odczyt na double albo w scanf zamiast %f napisz %lf.  Poza tym polecam zamienić miejscami te pętle for bo z tego co widzę za pewne w innej kolejności zamieżałeś je wczytać ;)

Podobne pytania

+1 głos
1 odpowiedź 236 wizyt
pytanie zadane 20 listopada 2020 w C i C++ przez ResCrove Obywatel (1,700 p.)
0 głosów
1 odpowiedź 1,004 wizyt
pytanie zadane 10 grudnia 2015 w C i C++ przez baszmest Gaduła (3,080 p.)
+1 głos
1 odpowiedź 219 wizyt

93,692 zapytań

142,611 odpowiedzi

323,220 komentarzy

63,220 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...