2014-02-20 10 views
-3

fgets не работает должным образом.fgets не работает должным образом

typedef struct { 
    int itemnumber; 
    char name [50]; 
    double price; 
    int stock; 
    int discount; 
    int reorder; 
    int reorderquantity; 
} item; 


item x; 
item *px[n]; 
px[n] = malloc(sizeof(item)); 

printf ("ENTER THE NUMBER OF ITEMS\n\n"); 
scanf ("%d",&n); 


for (i=0; i<n; i++) 
{ 
    px[i]=&x; 
    scanf ("%d",&px[i]->itemnumber); 
    fgets(px[i]->name,50,stdin); 
    px[i]->name[strlen(px[i]->name)-1]='\0'; 
    // fflush(stdin); 
    printf("%s",px[i]->name); 
}  
+1

Можете ли вы уменьшить свою проблему до более фундаментального вопроса, а не размещать весь код для того, что представляется домашним заданием? – karadoc

+1

Я не вижу никаких вызовов malloc или fget в коде ... – ArthurChamz

+0

«Я не уверен, что именно malloc() действительно для» - Google? – parrowdice

ответ

0

Вы только malloc один экземпляр. вы должны сделать px [n] = malloc (sizeof (item) * n); после того, как вы сканируете n

Смежные вопросы