文件的讀取和寫入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;

}

}

發佈了44 篇原創文章 · 獲贊 15 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章