C - struct

Programovacie jazyky, rady, poradňa...
Pascalwb
Addict
Addict
Príspevky: 3108
Registrovaný: 09 feb 2010, 23:26

C - struct

Príspevok od používateľa Pascalwb »

Zdravim, mam taky problem a uz ma ide porazit ztoho. Googlim aj vsetko a nic, proste nechapem.

Potrebujem ulozit udaju do zoznamu, tu je co mam.

Kód: Vybrať všetko

typedef struct zoznam {
  int data;
  char meno[31];
  struct zoznam *dalsi;
} ZOZNAM;

int main(void) 
{ 
  int c;
  FILE *fr;
  ZOZNAM *s;
  s = NULL;
  if ((fr = fopen("subor.txt","r")) == NULL)
    {
    printf("Zaznamy neboli nacitane");      
    }  
  
//  pridaj(&s, 1, "meno"); //Ak dam tuto natvrdo udaje tak ich prida
while(c=getchar())
    {
    if (c=='M')
      {
      nacitaj(fr); 
      }
    
  if (c=='K')
      {
      vypis(s);     
      }  
               
}     
}

nacitaj(FILE *fr)
{
ZOZNAM *s;
char meno[30];

//Tu nacitam zo suboru meno, je aj realne nacitane ked som ho skusal vypisat(teda nacitanie funguje)
printf("%s\n",meno);

pridaj(&s, 1, meno);   //funkcia na pridanie do zoznamu
}

pridaj(ZOZNAM **pps, int prvok, char menoz[30]) 
{
  ZOZNAM *ps;
  ps = (ZOZNAM *) malloc(sizeof(ZOZNAM));
  ps->data = prvok;                                                   //aj som kontroloval ci sa sem tem retazec dostane, a dostane
  strcpy(ps->meno, menoz);
  ps->dalsi = *pps;
  *pps = ps;
  return 0;
}

void vypis(ZOZNAM *ps) 
{
  while (ps != NULL)  
    {       
    printf("%d %s\n", ps->data, ps->meno); 
    ps = ps->dalsi;          
    }
}




Cize ak to dam natvrdo v maine tak to ide ale ak to ide z funkcie nacitaj tak nic. Prosim kto sa nato kuknem ci tam nenajde nejaku chybu. Velmi pekne dakujem, karma ista.
xadman
Medium Star
Medium Star
Príspevky: 305
Registrovaný: 09 mar 2011, 17:02

Re: C - struct

Príspevok od používateľa xadman »

Nie som si istý ale skús pred "nacitaj" dat int
A pred "pridaj" takisto

Kód: Vybrať všetko

int nacitaj(FILE *fr)
c-ice
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 04 mar 2008, 15:18
Kontaktovať používateľa:

Re: C - struct

Príspevok od používateľa c-ice »

pred nacitaj netreba tam nic ne vracia co je chyba lebo lepsie by bolo keby tam vracal ten Zoznam co je dovod preco mu to absolutne nefunguje kedze nacitava do premennej v nacitaj ktora sa po skonceni funkcie strati ... takze riesenie mas dve bud si tu premennu budes posuvat napriec funkciami alebo stej premmennej spravis globalnu (pisem o tomto ZOZNAM *s) ... ostatne som nejak neriesil ale toto bije do oci odporucam pouzivat Debug a krokovat si ten program
Napísať odpoveď