|
| fscanf i C Fra : janni_s | Vist : 982 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 |
| | |
| Kommentar Fra : janni_s |
Dato : 30-09-09 15:44 |
|
okay.
Tak fordi du gjorde mig opmærksom på det, havde jeg overset :)
| |
| 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.
| |
|
|