/ 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
læs fra fil
Fra : janni_s
Vist : 861 gange
200 point
Dato : 29-11-09 13:31

Jeg har skal indlæse følgende fra en .txt fil:

1   toyota   10.00   10   
2   volvo   10.15   10
3   audi   10.30   20
4   volvo   10.35   10
5   nissan   10.50   20
6   fiat   11.15   10
7   hyundai   11.25   20
8   hummer   11.45   10

og det gør jeg således:

fscanf("%d %c %lf %d", &bil_nummer, &bil_maerke, &ankomsttid, &vaske_type);

men det kan den ikke. så hvordan skal jeg hente min char fra filen. eller skal jeg hente den som string`?

På forhånd tak



 
 
Kommentar
Fra : granner01


Dato : 29-11-09 23:39

Hvor skal den fil indlæses fra?

Kommentar
Fra : BertelBrander


Dato : 30-11-09 04:16

Du skal angive filen som første parameter til fscanf, ca:

FILE* file = fopen("data.txt", "rt");

fscanf(file, "%d %c %lf %d", &bil_nummer, bil_maerke, &ankomsttid, &vaske_type);

Du skal (sandsynligvis) ikke have & på "bil_mærke", da det skal være et array/en pointer.

Hvis ikke det hjælper, så post hele koden.

Kommentar
Fra : janni_s


Dato : 01-12-09 19:51

undskyld jeg ikke skrev hele koden, men tænkte at problemet lå i lige den linie, og måden jeg forsøgte at gemme det på.

det er en funktion i mit program der henter data fra en fil til en ny bil der ankommer til en vaskehal:

void data_til_ny_bil()
{
   FILE *datafil;
char filnavn[40] = "C:\\Users\\janni\\Desktop\\biler_i_koe.txt";   
   datafil = fopen(filnavn, "r");
   fscanf("%d %c %lf %d", &bil_nummer, &bil_maerke, &ankomsttid, &vaske_type);
   printf("ankommet bil: \n"
       "bilnummer : %d"
       "bilmaerke : %c"
       "ankomsttid : %f"
       "vasketype : %d minutter \n", bil_nummer, bil_maerke, ankomsttid vaske_type);
}


De variable jeg gemmer i har jeg erklæret globalt.

Jeg tror problemet ligger i at jeg ikke kan erklære bilmærke som en char, og så hente den fra fil med %c. Men hvad kan jeg så gøre?


Accepteret svar
Fra : BertelBrander

Modtaget 200 point
Dato : 01-12-09 23:20

Hvis du har
char bil_maerke[256];

Så skal du bruge %s for at læse en streng. %c er for én char.

Så hele linien burde se sådan ud:
fscanf(datafil, "%d %s %lf %d", &bil_nummer, bil_maerke, &ankomsttid, &vaske_type);

Du skal også bruge %s i stedet for %c der hvor du skriver ud.

Godkendelse af svar
Fra : janni_s


Dato : 07-12-09 19:16

Tak for svaret BertelBrander.

det var mit problem. havde glemt at skrive filen i min fscanf, og havde glemt [...] på mit bilmærke... 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 : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407822
Brugere : 218875

Månedens bedste
Årets bedste
Sidste års bedste