Witam. Pisze program który ma pobierać dane z pliku i przydzielić je do struktury.
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
using namespace std;
int main() {
struct dane{
char* imie;
int wiek;
char* przyjaciele[99];
int ile_przyjaciol;
int wrogowie[99];
} ;
struct dane osoby[1000];
char* tab[10];
int i,j;
FILE* plik;
char* tekst;
tekst = (char*) malloc( sizeof(char) );
char *n;
j=0;
plik = fopen("xxx.txt", "r");
while (feof(plik)==false){
i=0;
n=fgets( tekst, 100, plik );
///printf("%s\n",tekst);
char* k = tekst;
while (k != NULL) {
char* l = strchr(k+1,' ');
if (l != NULL) *l = '\0';
////cout << k << endl;
tab[i]=k;
i=i+1;
if (l != NULL) k = l+1;
else k=NULL;
}
if (strlen(tab[0])==5){
osoby[j].imie=tab[1];
osoby[j].wiek=atof(tab[2]);
printf("%d\n",j);
printf("imie %s\n",osoby[j].imie);
printf("wiek %d\n",osoby[j].wiek);
printf("\n");
}
j=j+1;
}
printf("\n");
printf("%d\n",j);
for (i=0;i<=j-1;i++){
printf("imie %s\n",osoby[i].imie);
printf("wiek %d\n",osoby[i].wiek);
}
return 0;
}
plik "xxx.txt" wygląda tak:
OSOBA Ala 18
OSOBA Ola 17
OSOBA Jan 16
OSOBA Marek 20
OSOBA Ula 15
Problem polega na tym, że na samym końcu kiedy chcę wypisać sobie dane ze struktur to jako imię wypisuje cały czas imię z ostatniego wiersza z pliku. Pytanie brzmi: czemu? W przypadku wieku się tak nie dzieje;/ Będę wdzięczny za pomoc. Pozdrawiam