文件的读取和写入c++

文件的读取,S是一个学生链表 ,

typedef struct  Student
{  
    string no;   //学号
    string name; //姓名
    string cla;   //班级
string sex; //性别 
string phone; /手机号码
string sele; //选修课程
}Student; 
typedef struct stu{
Student data[M];
int len;
}stu;

/*读取文件*/

stu readFile(stu S){

ifstream stu("stu.txt"); /*ifstream 读取的文件*/
stu.seekg(ios::beg);
char s[100];
stu.getline(s,100,'\n');
while ( stu.getline(s,100,'\n') ){
S.len++;
char seg[] = "------"; /*分隔符这里为逗号comma,分隔符可以为你指定的,如分号,空格等*/  
        char charlist[50][50]={""}; /*指定分隔后子字符串存储的位置,这里定义二维字符串数组*/  
        int i =0;  
        char *substr= strtok(s, seg); /*利用现成的分割函数,substr为分割出来的子字符串*/  
        while (substr != NULL) {    
                strcpy(charlist[i],substr); /*把新分割出来的子字符串substr拷贝到要存储的charlsit中*/  
                i++;  
// cout<<substr<<endl; /*读出所有数据*/
               substr = strtok(NULL,seg);  

        }   

//将数据写入链表中

S.data[S.len].no=charlist[0];
S.data[S.len].name=charlist[1];
S.data[S.len].cla=charlist[2];
S.data[S.len].sex=charlist[3];
S.data[S.len].phone=charlist[4];
S.data[S.len].sele=charlist[5];
// cout<<charlist[5]<<endl;
}
return S;
}


/*将链表写入文件中*/
void writeFile(stu S){
ofstream stud("stu.txt"); /*ofstream  ..写入的文件*/
int a;
stud<<"学号------姓名------班级------性别------手机号码------选修课"<<endl; 
for(a=1;a<=S.len;a++)  {
stud<<S.data[a].no<<"------"<<S.data[a].name<<"------"<<S.data[a].cla<<"------"<<S.data[a].sex<<"------"<<S.data[a].phone<<"------"<<S.data[a].sele<<endl;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值