anoniem Geplaatst: 2 april 2004 Delen Geplaatst: 2 april 2004 ik lees een file in, woord voor woord, wat ik inlees wil ik in een array zetten (BUF1[80]). Maar wat er uiteindelijkin komt te staan is het laatst ingelezen woord. Dit geld voor elke inhoud van de array (dus BUF1[1] tot met BUF1[80]). Wat kan ik doen om er voor te zorgen dat alle woorden wel worden opgeslagen in een apparte array geheugen? de code is: [code:1:0829130ea5] char Verplaats[80]; char *BUF1[80]= {0}; while (c != EOF) { c = fscanf(Ingeloged, "%s", Verplaats); if(c !=EOF) { BUF1[i]=Verplaats; printf("BUF1[%d] is:%s\n",i,BUF1[i]); i++; } // end of if ! OEF } //end of while fclose(Ingeloged); Ingeloged = fopen(IngelogedNameFile,"r"); /* open voor lezen */ if (Ingeloged==NULL) { printf("Sorry, het bestand bestaat niet...\n"); } // end of control file exist/ if else { int k = 0; while(k < i)//for(int k = 0; k < i; k++) { printf("buf1[%d] %s\n",k, BUF1[k]); if (strnicmp(BUF1[k], NAME, sizeof(NAME))==0) { printf("in overslaan\n"); k++; } // end of compare the strings printf("buf2 %s\n",BUF1[k]); //fprintf(Ingeloged,"%s\n", BUF1[k]); k++; } // end of while fclose(Ingeloged); } // end of else [/code:1:0829130ea5] Bijvoorbaat dank Quote Link naar reactie
anoniem Geplaatst: 2 april 2004 Auteur Delen Geplaatst: 2 april 2004 Begin je met 1 (of 0) of met 80 :roll: Quote Link naar reactie
anoniem Geplaatst: 2 april 2004 Auteur Delen Geplaatst: 2 april 2004 [quote:4d6e890fc9="turbo-pascal"]Begin je met 1 (of 0) of met 80 :roll:[/quote:4d6e890fc9] Bij 0, dus we gan tot 79 8) Quote Link naar reactie
anoniem Geplaatst: 16 april 2004 Auteur Delen Geplaatst: 16 april 2004 Je array buf1 bevat alleen pointers naar een stringvariabele, in dit geval zet je er telkens het adres van "verplaats" in en dit adres verandert niet. Dus als je nu buf1 gaat uitlezen, kijk je telkens naar de inhoud van verplaats en die is gevuld met wat je het laatst hebt ingelezen. Oplossing : een stukje geheugen vrijmaken ter grootte van de inhoud van "verplaats"+1 extra byte(voor de 0 op het eind) en in buf1[ ] dit adres zetten. Vervolgens kun je inhoud van "verplaats" naar *buf1[ ] verplaatsen. Ruimte maak je vrij met de functie malloc() of iets moderners. Sterkte en veel plezier verder. Floris. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen