写一个简单的c++程序?

要求写一个程序,键盘输入并程序写进n个人的姓名,年龄在一个文件里,然后输出这些姓名,年龄,按照年龄从小到大排列输出到屏幕。大概就是我写的这个样子,不过我不知道怎么写输出了

#include<iostream>
#include<cmath>
using namespace std;
class A{
public:
string name;
int age;

};
int main(){
int n;
A a;
cin>>n;

freopen("试用文件2.txt","w",stdout);
for(int i=0;i<n;i++){
cin>>a.name>>a.age;
cout<<a.name<<" "<<a.age<<endl;//写进
}
freopen("试用文件2.txt","r",stdin);
A *b[n]; int min=0,age_;string name_;
while(cin>>a.name>>a.age){

cout<<a.name<<" "<<a.age<<endl;//输出
}
}
return 0;
}

第1个回答  2020-05-22

#include<iostream>

#include<cmath>

using namespace std;

class A

{ public:

    string name;

    int age;

};

int main()

{ int n;

  A a;

  cin>>n;


  freopen("试用文件2.txt","w",stdout);

  for(int i=0; i<n; i++)

  { cin>>a.name>>a.age;

    cout<<a.name<<" "<<a.age<<endl;//写进文件

  }

  freopen("试用文件2.txt","r",stdin);    //准备从文件中读出

  A arr[n],*b[n],*t;

  int i=0,j;

  while(cin>>arr[i].name>>arr[i].age)    //读入到数组中

  { b[i]=&arr[i];

    i++;

  }

  for(i=0; i<n-1; i++)        //冒泡排序

    for(j=0; j<n-1-i; j++)

      if((*b[j]).age>(*b[j+1]).age)

      { t=b[j];

        b[j]=b[j+1];

        b[j+1]=t;

      }

  freopen("con","w",stdout); //将排序的结果,输出重定向回到屏幕

  cout<<"===================\n";

  for(i=0; i<n; i++)

  { cout<<(*b[i]).name<<" "<<(*b[i]).age<<endl;//输出

  }

  return 0;

}

本回答被提问者和网友采纳
第2个回答  2020-05-22
这种情况是这样吗

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网