要求写一个程序,键盘输入并程序写进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;
}
#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;
}
本回答被提问者和网友采纳