【问题描述】
建立两个磁盘文件f1.txt和f2.txt,编写程序实现以下工作:
(1)从文件in.txt输入20个整数,分别存放在两个磁盘文件f1.txt和f2.txt中(每个文件中放10个整数);
(2)从f1.txt读入10个数,然后存放到f2.txt文件原有数据的后面;
(3)从f2.txt中读入20个整数,将它们按照从小到大的顺序存放到f2.txt(不保留原来的数据)。
【输入形式】
11 22 55 66 33 44 77 88 99 10 20 50 60 30 40 70 80 90 222 111
【输出文件】
输出文件为当前目录下的f1.txt和f2.txt。
【样例输入】
11 22 55 66 33 44 77 88 99 10 20 50 60 30 40 70 80 90 222 111
【样例输出】
输出文件f1.txt内容为:
11 22 55 66 33 44 77 88 99 10
输出文件f2.txt内容为:
10 11 20 22 30 33 40 44 50 55 60 66 70 77 80 88 90 99 111 222
【样例说明】输入文件为当前目录下的f1.txt,输出文件为当前目录下的f2.txt。
1. #include<iostream> 2. #include<fstream> 3. #include<algorithm> 4. using namespace std; 5. int in[20],x; 6. void Read() 7. { 8. ifstream ifs("in.txt",ios::in); 9. for(int i=0;i<20;++i){ 10. ifs>>in[i]; 11. } 12. ifs.close(); 13. } 14. void Save() 15. { 16. ofstream ofs1("f1.txt",ios::out); 17. ofstream ofs2("f2.txt",ios::out); 18. for(int i=0;i<10;++i){ 19. ofs1<<in[i]<<" "; 20. ofs2<<in[i+10]<<" "; 21. } 22. ofs1.close(),ofs2.close(); 23. } 24. void Sum() 25. { 26. ifstream ifs("f1.txt",ios::in); 27. ofstream ofs("f2.txt",ios::out|ios::app); 28. for(int i=0;i<10;++i){ 29. ifs>>x; 30. ofs<<x<<" "; 31. } 32. } 33. void Sort() 34. { 35. ifstream ifs("f2.txt",ios::in); 36. for(int i=0;i<20;++i){ 37. ifs>>in[i]; 38. } 39. ifs.close(); 40. sort(in,in+20); 41. ofstream ofs("f2.txt",ios::out); 42. for(int i=0;i<20;++i){ 43. ofs<<in[i]<<" "; 44. } 45. ofs.close(); 46. } 47. int main(){ 48. Read(); 49. Save(); 50. Sum(); 51. Sort(); 52. }