Toon posts:

[c++] waardes veranderen bij inlezen file

Pagina: 1
Acties:
  • 24 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik gebruik de volgende code om header informatie uit een bestand te krijgen. Alleen wanneer ik str2 inlees en toeken dan neemt str1 dezelfde waarde aan als str2. Heeft iemand een idee wat ik fout doe ?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
struct Header
{
  char *str1;
  char *str2;
  int nr;
} header;

int main()
{
 
  FILE *file;
  int i;
 
  file = fopen("c:\\test.txt", "r");

  for(i=0;i!=8;i++)
  {
    char buffer[256];
    fgets(buffer,255,file);
    buffer[strlen(buffer)-1]='\0';

    switch(i)
    {
    case 0:
      header.str1 = buffer;
      break;
    case 1:
      header.str2 = buffer;
      break;
    case 2:
      sscanf(buffer, "%i", &header.nr); 
      break;
    }
  }

  printf("%s\n", header.str1);
  printf("%s\n", header.str2);
  printf("%i\n", header.nr);
  
  fclose(file);

  getch();

    return 0;
}

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
Omdat beide pointers naar dezelfde geheugenplek wijzen, namelijk buffer.

Ik denk dat het handig is om nog wat meer informatie over pointers op te zoeken.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01:00

.oisyn

Moderator Devschuur®

Demotivational Speaker

Tutorialtje over pointers en strings zal je geen kwaad doen nee. Tip: maak een kopie van buffer en ken die kopie toe aan str1 of str2. Niet vergeten achteraf weer vrij te geven natuurlijk

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Dit topic is gesloten.