Beste Allemaal,
Voor school ben ik een opdracht aan het maken in C waar ik niet helemaal uitkom en ik hoop dat iemand me kan helpen.
Het probleem is als volgt. Je hebt een tekstbestand met namen en nummers
-----
Pietje<enter>
10<enter>
Jan<enter>
11<enter>
Jozef<enter>
12
-----
Het idee is om de tekstfile uit te lezen en in een structarray van 'personen te gooien'
Wat ik nu heb is dit:
Het punt is dat hij ten eerste rare resultaten teruggeeft bij het lezen, dit ziet er namelijk als volgt uit:
"
10: Pietje
10:
11: Jan
11:
12: Josef
12:
"
Ik begrijp dat de while er 6x door heen gaat, maar ik snap niet hoe ik het voor elkaar kan krijgen om er maar 3x doorheen te gaan, zodat de resultaten wel correct zijn. Daarnaast snap ik de lege regels niet.
Verder krijg ik nog een error: incompatible types in assignment
Bij deze regel: temp[teller].naam = nm;
Verder dacht ik de array temp gewoon te returnen.
Kan iemand me helpen?
Voor school ben ik een opdracht aan het maken in C waar ik niet helemaal uitkom en ik hoop dat iemand me kan helpen.
Het probleem is als volgt. Je hebt een tekstbestand met namen en nummers
-----
Pietje<enter>
10<enter>
Jan<enter>
11<enter>
Jozef<enter>
12
-----
Het idee is om de tekstfile uit te lezen en in een structarray van 'personen te gooien'
code:
1
2
3
4
| typedef struct persoon { int nummer; char naam[30]; } Persoon; |
Wat ik nu heb is dit:
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
| Persoon * leesfile(char *filename, int *pn){ Persoon * array; FILE * fp; if ((fp = fopen(filename, "r")) == NULL) { printf("Kan file %s niet openen\n", filename); return NULL; } char nm[30]; int nmr; int teller = 0; Persoon temp[40]; while(!feof(fp)){ fgets(nm, 120, fp); fscanf(fp,"%d",&nmr); printf("%d: ", nmr); // test of hij correct leest printf("%s\n", nm); // test of hij correct leest temp[teller].naam = nm; temp[teller].nummer = nmr; teller++; } } |
Het punt is dat hij ten eerste rare resultaten teruggeeft bij het lezen, dit ziet er namelijk als volgt uit:
"
10: Pietje
10:
11: Jan
11:
12: Josef
12:
"
Ik begrijp dat de while er 6x door heen gaat, maar ik snap niet hoe ik het voor elkaar kan krijgen om er maar 3x doorheen te gaan, zodat de resultaten wel correct zijn. Daarnaast snap ik de lege regels niet.
Verder krijg ik nog een error: incompatible types in assignment
Bij deze regel: temp[teller].naam = nm;
Verder dacht ik de array temp gewoon te returnen.
Kan iemand me helpen?