#include<iostream>
using namespace std;
struct pizza{
char name[1000];
double r;
double weight;
};
int main()
{
pizza quantity[10];
int i,j;
for(i=0;i<2;i++){
cin>>quantity[i].name;
cin>>quantity[i].r;
cin>>quantity[i].weight;
}
for(i=0;i<2;i++)
cout<<quantity[i].name<<" "<<quantity[i].r<<" "<<quantity[i].weight<<endl;
return 0;
}
既然是C++,当然是建议使用c++的getline();读取一行
配合字符串string进行使用,在输入过程中得要适当清空输入缓冲区即可。
#include<iostream>
#include <string>
using namespace std;
struct pizza {
//char name[1000];
string name;
double r;
double weight;
};
int main() {
pizza quantity[10];
int i, j;
for (i = 0; i < 2; i++) {
//cin >> quantity[i].name;
getline(cin, quantity[i].name);
cin >> quantity[i].r;
cin >> quantity[i].weight;
// 清空输入缓冲区
char c;
while ((c = getchar()) != '\n');
}
for (i = 0; i < 2; i++)
cout << quantity[i].name << " " << quantity[i].r << " " << quantity[i].weight << endl;
return 0;
}
带空格的字符串?cin碰到空格就中断了。。。用gets(a)就可以,用gets会直接读取这一行作为数据,你后面再输入r要先回车