请问为什么我的程序在第一个循环报错。并且不能输入有空格的字符串呢?一下是代码
编写一个程序记录捐助钱。该程序要求用户输入捐款者数目,然后要求用户输入每一个捐款者的姓名和款项。这些信息被储存在一个动态分配的结构数组中。每个结构都有两个成员。读取所有数据后。程序将显示所有捐
超过10000的捐款的姓名及捐款者。改列表要以Patrons开头,如果某种类别没有捐款者,则程序将打印单词“none”。
#include<iostream>
struct stu_helpers
{
char name[20];
double money;
};
using namespace std;
int main(int,char**)
{
int NO_people;
cout<<"Please enter the number of the people have donate:";
(cin>>NO_people).get();
stu_helpers *p_stu_helpers=new stu_helpers[NO_people]; //申请内存
stu_helpers *temp1;stu_helpers *temp2;
temp1=temp2=p_stu_helpers;
cout<<"now please input those people infor mation";
for(int i=0;i<NO_people;i++,temp1++){
cout<<"Enter the "<<i+1<<" name:";
cin.get();
cin>>p_stu_helpers->name;
cout<<"Enter the money to donate:";
cin>>p_stu_helpers->money;}
cout<<"those people have donate beyond 10000:"<<endl;
for(int i=0;i<NO_people;i++,temp2++){
if(p_stu_helpers->money<10000)continue;
if(p_stu_helpers->money>=10000)
cout<<p_stu_helpers->name<<"\t"<<p_stu_helpers->money;}
for(int i=0;i<NO_people;i++,p_stu_helpers++)delete p_stu_helpers; //依次释放内存
return 0;
}