28. november 2004 - 12:56
Der er
23 kommentarer og 1 løsning
C: hjælp til while(&inddata "er forskellig fra" eof)
hej eksperter i C... Jeg har en funktion der smider en linie ind i en variabel (&inddata) som den henter fra en fil (indfil)... det skal den så gøre indtil den når ned i bunden... men jeg kan ikke få det til at virker... :( Er der nogen der kan hjælpe?
Annonceindlæg fra DE-CIX
28. november 2004 - 13:16
#1
Jeg har tit brugt den her: char line[100]; FILE *fp = fopen(filename,"r"); while(!feof(fp)) { if(!fgets(line,sizeof(line),fp)) break; /* gør noget me dline */ } fclose(fp);
28. november 2004 - 13:28
#2
Jeg får en segmentation fault... linien: while(!feof(indfil))
28. november 2004 - 13:29
#3
Er fp forskellig fra NULL ?
28. november 2004 - 13:33
#4
printf("Skriv navnet paa inddata filen, eks.: inddata_opgD.txt \n"); //scanf("&s",ind); ind[0] = 'i'; ind[1] = 'n'; ind[2] = 'd'; ind[3] = 'd'; ind[4] = 'a'; ind[5] = 't'; ind[6] = 'a'; ind[7] = '.'; ind[8] = 't'; ind[9] = 'x'; ind[10] = 't'; ind[11] = '\0'; printf("Skriv navnet paa uddata filen, eks.: uddata_opgD.txt \n"); //scanf("%s",ud); ud[0] = 't'; ud[1] = 'e'; ud[2] = 's'; ud[3] = 't'; ud[4] = '9'; ud[5] = '.'; ud[6] = 't'; ud[7] = 'x'; ud[8] = 't'; ud[9] = '\0'; FILE *indfil; indfil = fopen(ind,"r"); FILE *udfil; udfil = fopen(ud,"w"); /* Udfilen startes */ fprintf(udfil," Starten af filen er her og der skal staa noget klogt tekst!\n"); fprintf(udfil," indtastet genkendt som uddata \n "); while(!feof(indfil)) { fscanf(indfil,"%s",&inddata); *flere linier hvor nogen skriver til filen udfil }
28. november 2004 - 13:36
#5
Prøv lige: indfil = fopen(ind,"r"); if(indfil == NULL) { printf("Kan ikek finde filen %s\n",ind); }
28. november 2004 - 13:36
#6
Nu kan jeg se at du ikke angiver directory på filen - står du i det rigtige directory ?
28. november 2004 - 13:37
#7
ind[0] = 'i'; ind[1] = 'n'; ind[2] = 'd'; ind[3] = 'd'; ind[4] = 'a'; ind[5] = 't'; ind[6] = 'a'; ind[7] = '.'; ind[8] = 't'; ind[9] = 'x'; ind[10] = 't'; ind[11] = '\0'; kan iøvrigt laves som: strcpy(ind,"inddata.txt");
28. november 2004 - 13:37
#8
(bemærk at strcpy kopierer fra højre mod venstre)
28. november 2004 - 13:38
#9
jae... men tilføjede denne linie: indfil = fopen(ind,"a"); og så kom jeg videre! (der kom så andre fejl)
28. november 2004 - 13:40
#10
fopen(ind,"a"); åbner en fil for skrivning (i slutningen af en eksisterende fil) ikke for læsning ...
28. november 2004 - 14:04
#11
nu er jeg fuldstændig væk i den kode... hvis jeg skal indlæse en linie, men kun til først mellemrum... hvad skal man så bruge? fscanf(indfil,"%s",&inddata); ikk?
28. november 2004 - 14:05
#12
fscanf med %s læse kun til mellemrum fgets læser hele linien
28. november 2004 - 15:27
#13
arrrr... bliver sindsyg af det s... C nu er der intet der virker... /* variable defineres */ double fejl=0, nyt, tid, u; int i=0,j,k=0,p=0; char inddata[72], nytid[6], gtid[7], uddata[7], ind[50], ud[50], Gt[9]; int t,m,s; /* Funktioner */ double Nytid(char varnavn[7],double *nyt, int *t,int *m,int *s); char Gtid(char varnavn2[6], double *tid, char Gt[9]); /* inddata registreres og uddatafilen navngives */ printf("Skriv navnet paa inddata filen, eks.: inddata_opgD.txt \n"); printf("hvor dataen har foelgende formatering:\n"); printf(" - Nytid, skal indtastet med 4 decimaler \n - alm tid paa foelgende form: 08:20:12\n"); scanf("&s",ind); //strcpy(ind,"inddata.txt"); printf("Skriv navnet paa uddata filen, eks.: uddata_opgD.txt \n"); scanf("%s",ud); Kan du se hvad der er galt her? jeg får segmentation fault lige efter jeg har skret filen til "ind"...
28. november 2004 - 15:29
#14
har lige set det!
28. november 2004 - 15:39
#15
&s skal være %s ...
28. november 2004 - 15:49
#16
ja... det så jeg også lige... kan du så sige mig... hvorfor jeg ikke får læst noget ind i inddata (der er en char) FILE *indfil; indfil = fopen(ind,"r"); FILE *udfil; udfil = fopen(ud,"w"); /* Udfilen startes */ fprintf(udfil," Starten af filen er her og der skal staa noget klogt tekst!\n"); fprintf(udfil," indtastet genkendt som uddata \n "); fscanf(indfil,"%s",inddata); printf("%s",inddata);
28. november 2004 - 15:58
#17
Er der noget i indfil ?
28. november 2004 - 16:02
#18
nej... den var tom... (er blevet lettere sindsyg nu)
28. november 2004 - 16:06
#19
som du måske har gætte er jeg ret ny udi C... men jeg forstår ikke hvorfor jeg får fejl når jeg forsøger at lave fejlsøgning, men når jeg bruger gcc i et terminal køre det fint...
28. november 2004 - 16:09
#20
Hvordan laver du fejl søgning ?
28. november 2004 - 16:10
#21
åh... glemte lige at skrive at jeg bruger KDevelop i SuSE
28. november 2004 - 16:27
#22
Åh - den kan jeg ikke hjælpe med.
28. november 2004 - 16:28
#23
nej okay... men jeg tror også næsten jeg har fået løst alle min "dumme-fejl" så hvis du smider et svar. Og mange tak for hjælpen :D
28. november 2004 - 16:29
#24
svar
Kurser inden for grundlæggende programmering