[ ibro @ 09.12.2004. 21:01 ] @
eh ovako. zadatak je da se napravi jedan nesto kao telefonska knjiga, u koju ce se moci ucitavat podaci. ja sam napravio da mi ispise izbor menija (unos, ispis, trazi ....). ali sam zapeo kod citanja unosa. kad upisem nesto, on mi izbaci nesto sto nema veze sa onim sto sam ja upisao.


Code:

/*ovo je funkcija za ucitavanje linije. str je poljeznakova; num je duzina poljaznakova*/


void getline (char *str, long num)
        {
         char c, *strende = str + num - 1;
           
            if (num < 1 || !str)
               return;
               
            while ((c = getchar()) != '\n')
                if (str < strende)
                {
                  *str = c;
                  str = str + 1;
                }
        *str = 0; 
        }
        
char Unos(Adresse_t adressen[], long *index)
        {
           printf("\n");
           printf("Name:     ");
           getline(adressen[*index].name, sizeof(adressen[*index].name));
           
           *index = *index + 1;         
        }
        
void Ispispodataka(Adresse_t adressen[], long index)
        {
           printf("\n");
           printf("Name:    %s", adressen[index].name);
        }

void Ispis(Adresse_t adressen[], long anzahl)
        {
           long i;
            
          for(i = 0; i < anzahl; i = i + 1)
             Ispispodataka(adressen, i);
              
           printf("\n");
        }

 main()
{
 
  char izbor;
  long anzahl;
  char *a;
  Adresse_t Adressbuch[ADRESSBUCH_LEN];
  
  izbor = Biranjemenijal();
  /* i ovdje mi sad fino uradi ono sto je zadano, al dalje nece*/

Unos(Adressbuch, &anzahl);
 
 Ispis(Adressbuch, anzahl);

  
      
  
}
[ _Super_Ellite_Bug_ @ 09.12.2004. 22:38 ] @
Pozdrav,
Da li su ti ovo delovi koda funkcija ili.... ????
Ako je ovo tvoja funkcija:
Citat:

char Unos(Adresse_t adressen[], long *index)
{
printf("\n");
printf("Name: ");
getline(adressen[*index].name, sizeof(adressen[*index].name));

*index = *index + 1;
}

Da ti mozda, "slucajno" kompajler ovde ne prijavljuje gresku? Return value ??
Zasto char?
Drugo:---------------->!!!!! SIZEOF !!!!!!!!
sizeof operator vraca kolicinu alocirane momorije u odnosu na tip promenljivih u nizu ili promenljive.
Na primer int array[] = { 1, 2, 3, 4, 5 };
sizeof( array ) = 20;
Bas to ti treba?

Off Topic:
Adresse_t predpostavljam da je pointer. Ako nije napravi da jeste.
Upoznaj se sa debugerom i pocni da ga koristis.
Uzdravlje i srecno.
[ ibro @ 10.12.2004. 11:27 ] @
hvala,
mislim da sam rijesio nekako.