2

C で、文字列から入力を取得する必要があるとします。

 int num,cost;
 char *name[10];
 printf("Enter your  inputs [quantity item_of_name at cost]");
 scanf("%d%*c%s%*c%*s%*c%d",&num,name[0],&cost);

 printf("quantity of item: %d",num);
 printf("the cost of item is: %d",cost);
 printf("the name of item is: %d",name[0]);

入力

12時に1冊

出力

商品の数量: 1

アイテムのコスト: 12

アイテムの名前は: 本

今、私はC++で同じことをしたいと思っています。そしてどう接したらいいのかわからない。gets() は文字列全体を返します。見逃している特定の関数はありますか? 助けてください。

4

4 に答える 4

6
int num,cost;
std::string name;
std::cout << "Enter your  inputs [quantity item_of_name at cost]: ";
if (std::cin >> num >> name >> cost)
{ } else 
{ /* error */ }

エラー処理を追加する必要があります

于 2012-10-12T10:58:31.460 に答える
0

C ++では、std :: stream>>は、オペレーターを介したユーザーとの読み取りおよび書き込み通信を提供します。

あなたのコードはに翻訳されます

int num,cost;
std::string name;

std::cout << "Enter your  inputs [quantity item_of_name at cost]" << std::flush;
std::cin >> num >> name;
std::cin >> at; // skip the at word
std::cin >> cost;

std::cout << "quantity of item: " << num << std::endl;
std::cout << "the cost of item is: " << cost << std::endl;
std::cout << "the name of item is: " << name << std::endl;
于 2012-10-12T11:01:23.283 に答える
0

C++ ではcin、標準ライブラリのcoutとを使用する必要があります。string

于 2012-10-12T10:59:05.873 に答える
0

iostream の cin を使用できます。

int num,cost;
 char *name[10];
 std::cout <<"Enter your quantity"<<std::endl;
 std::cin>> num;
 std::cout<<" Enter the cost"<<std::endl;
 std::cin>>cost;
 std::cout<<"Enter the name"<<std::endl;

 std::cout<<"The quantity of the item is: "<<num<<" costing: "<<cost<<" for "<<name[0]<<std::endl;

もちろん、char* の代わりに std::string を使用することもできます。

または、cin >> num >> cost >> name; のように cin を簡素化します。

また、Griwesが指摘したように、結果に対してエラー チェックを実行する必要があります。

于 2012-10-12T10:59:16.613 に答える