/ Forside/ Teknologi / Udvikling / C/C++ / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
Bech_bb 500
kyllekylle 500
jdjespers.. 500
gibson 300
scootergr.. 300
molokyle 287
10  strarup 270
fscanf i C
Fra : janni_s
Vist : 845 gange
200 point
Dato : 30-09-09 14:53

jeg skal programmere et program der kan hente data fra et tekstdokument.
listen ser således ud: (det står opstilt på samme måde i dokumentet.


Temperatur for hver dag i januar 2008 målt i celsius grader:
-2 -1.5 -4 -1 -0.5 0 1 2 3 3 4 5 4 3 6 7 9 10 10 9 7 5 7 9 10 7 5 7 8 5 3
Nedbør for hver dag i januar 2008 målt i mm:
1 2 0 0 5 1 7 1 3 4 3 0 0 0 7 0.5 3 4 0 1 0 0 8 1 3 5 0.5 1 2 1 4
Temperatur for hver dag i januar 2009 målt i celsius grader:
-5 -10 -9 -3 -10 -11 -4 -10 -5 0 2 0 -1 -1 2 1 0 -3 -2 -1 0 0 1 0 -1 2 3 1 -1
0 1
Nedbør for hver dag i januar 2009 målt i mm:
0.5 1 2 0 0 2 0 1 0 0 0 3 1 0.5 0 0 1 7 4 0 0 2 3 1 0 0 0 0 0 0 0.5



jeg skal så lave et program der beregner gennemsnitstemperaturen for januar 2008. Jeg vil hente dataerne ind og lægge dem i et array, men jeg kan ikke få tallene korrekt ind. mit program ser således ud ( i dette program har jeg kun erklæret 2 variable, da jeg bare lige ville have ideen af hvordan jeg henter data fra en fil.)


#include <stdio.h>
#include <stdlib.h>

int main()
{
   double x,y;
   FILE *fpt1;
   fpt1=fopen("C:/Brugere/Janni/Dokumenter/januar 08 og 09.rtf", "r");
   fscanf(fpt1,"%f %f", &x,&y);
   printf("%f%f", x,y);
   while (1);
   return 1;
}


mit output bliver da " 1.#QNAN00.000000 "
Så jeg er lidt i tvivl om hvad jeg skal. Jeg troede at når jeg erklærede mine variable som double, at fscanf vil kigge dokumentet igennem indtil det rammer et tal, og så tage tallet så langt det er indtil et mellemrum. og så derefter tage næste tal.

Så nu er mit spørgsmål, hvordan får jeg programmet til at hente dataerne fra dokumentet, og eventuelt stille det op i en array.


på forhånd tak

Janni_s



 
 
Kommentar
Fra : ans


Dato : 30-09-09 15:32

janni_s jeg har ikke et svar på dit spørgsmål, men se her

http://www.kandu.dk/spg140252.aspx

Kommentar
Fra : janni_s


Dato : 30-09-09 15:44

okay.

Tak fordi du gjorde mig opmærksom på det, havde jeg overset :)

Accepteret svar
Fra : BertelBrander

Modtaget 200 point
Dato : 30-09-09 19:09

Du bliver nødt til selv at læse forbi det fscanf ikke skal skanne, ellers vil fscanf fejle. Den spoler selv forbi "whitespace" men ikke bogstaver.
Læs og ignorer de uønskede linjer med fgets.

Godkendelse af svar
Fra : janni_s


Dato : 07-10-09 10:23

Tak for svaret BertelBrander.

undskyld jeg var så langsom til at reagere. Men nu virker det. tak

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177413
Tips : 31962
Nyheder : 719565
Indlæg : 6407802
Brugere : 218875

Månedens bedste
Årets bedste
Sidste års bedste