C++之文件输入输出

在这里遇见不少的问题,其中的路径问题就是在windows中,\\转义字符才能准确的表示路径

#include <iostream>
#include <fstream>
#include <algorithm>

#define max 105
using namespace std;

struct boy{
    char name[20];
    int china;
    int math;
    int english;

    int sum;
    boy(){
        china = math = english = 0;
    }

}stu[max];

bool operator <(const boy &a,const boy &b)
 {
    return a.sum<b.sum;
 }
int main()
{
    ///创建了读取和写出数据的两个对象
    ifstream input;
    ofstream output;

if(input.fail()){
        cout<<"文件不存在"<<endl;
    }
    else{
    ///打开文件
    input.open("f:\\file1.txt");
    ///Create a file
    output.open("f:\\file2.txt");
    cout<<"文件设置成功"<<endl;
    int i = 0;
    while(!input.eof()){
        input >> stu[i].name >> stu[i].china >> stu[i].math >> stu[i].english;
        stu[i].sum = stu[i].china+stu[i].english+stu[i].math;


        cout<< stu[i].name<<"  "<<stu[i].china<<"  "<<stu[i].math<<"  "<<stu[i].english<<"  "<<stu[i].sum<<endl;
        i++;
        cout<<"读取第"<<i<<"条数据成功"<<endl;
    }
    cout<<"文件读取成功"<<endl;
    ///关闭文件
    input.close();

    sort(stu,stu+i);
    for(int j = 0;j < i;j++){
        output<< stu[j].name<<"  "<<stu[j].china<<"  "<<stu[j].math<<"  "<<stu[j].english<<"  "<<stu[j].sum<<endl;
    }
cout<<"文件写入成功"<<endl;
    output.close();
    }
    return 0;
}

zhangjie 11 11 13
dingwei 22 43 43
kaka 32 32 34
adfa 32 42 44
zheng 23 23 23

 

数量一共为30到100之间的数量
文件名是file1.txt
name chinese math English
章杰    33    44    55

将上述文件写为file2.txt文件,通过总分进行一个排序,
并将它以
name Chinese math English sum 的形式写出

转载于:https://www.cnblogs.com/tianxia2s/p/4498470.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值