Ga naar inhoud

[C++ 6.0] array inhoud bepalen


Aanbevolen berichten

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
Link naar reactie
  • 2 weken later...
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.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...