2016-11-23 7 views
-3

この構造体の戻り値を入れる必要があるため、エラーが発生します。他の関数を使用してC99でユーザー入力を取得する構造体のユーザー入力を取得する方法

struct Item enterItem(int sku) 
{ 
     char name; 

     printf("  SKU: %d", sku); 
     printf("  Name: "); scanf("%20[^\n]", &name); 
     clearKeyboard();      // Function call to remove'\n' 
     printf("  Price: "); 
     getDouble();       // Function call to get user input in double 
     printf(" Quantity: "); 
     getInt();       // Function call to get user input in int 
     printf("Minimum Qty: "); 
     getInt(); 
     printf(" Is taxed: "); 
     getYesOrNo();      // Function call to get user input in bool > (Y)es or (N)o 

} 
+1

[、最小完全、かつ検証例]を投稿してください(http://stackoverflow.com/help/mcve)。あなたは値をどこに保存していますか?また、 'char name; – MikeCAT

+0

あなたは通常、値で構造体を渡したり戻したりしないでください。 –

+0

それでは、構造体型のローカル変数を宣言し、必要に応じてそれを埋め戻してください。そうでなければ、関数を変更してください。呼び出し側が提供する構造体へのポインタを受け入れる。 – kaylum

答えて

0

strutureオブジェクト(データ)を作成して戻す必要があります。

あなたはこのようなことも欲しい:

struct Item 
{ 
     char name[21]; 
     double price; 
     int quantity; 
     int minimum_qty; 
     _Bool is_taxed; 
}; 

struct Item enterItem(int sku) 
{ 
     struct Item item; 

     printf("  SKU: %d", sku); 
     printf("  Name: "); scanf("%20[^\n]", item.name); 
     clearKeyboard();      // Function call to remove'\n' 
     printf("  Price: "); 
     item.price = getDouble();   // Function call to get user input in double 
     printf(" Quantity: "); 
     item.quantity = getInt();   // Function call to get user input in int 
     printf("Minimum Qty: "); 
     item.minimum_qty = getInt(); 
     printf(" Is taxed: "); 
     item.is_taxed = getYesOrNo();  // Function call to get user input in bool > (Y)es or (N)o 

     return item;  
} 
関連する問題