C++读取txt文件内容——每行按列存入数组
考研筛选计算机考生的成绩,利用大三学习的数据挖掘课程的相应代码。
然后利用ifstream读取文件数据:每行每隔一个空格存入Grade[]数组的各项中。
获得数据:
数据:
程序首先自定义一个存放每行数据元素的类:
//定义访问类 class Grade { public: char sname[50]; //学生姓名 char sid[20]; //学生考号 char institute[50]; //学院名称 int majorid; //专业代码 char major[20]; //专业名称 float ptgrade; //初试成绩 float rtgrade; //复试成绩 float tgrade; //总成绩 char LearningMethod[20]; //学习方式 char AdmissionCategory[20]; //录取类别 };
然后利用ifstream读取文件数据:每行每隔一个空格存入Grade[]数组的各项中。
//打开和创立文件: ifstream infile; infile.open("infile.txt", ios::in); /*string contents;*/ if (infile.fail()) { cout << "error open!" << endl; } //读取文件: Grade grades[3500]; int grade_size = 0; while (!infile.eof()) { infile >> grades[grade_size].sname >> grades[grade_size].sid >> grades[grade_size].institute >> grades[grade_size].majorid >> grades[grade_size].major >> grades[grade_size].ptgrade >> grades[grade_size].rtgrade >> grades[grade_size].tgrade >> grades[grade_size].LearningMethod >> grades[grade_size].AdmissionCategory; grade_size++; }
//保存文件: if (outfile) { for (int i = 0; i<grade_size; i++) { if(grades[i].majorid == 81200 || grades[i].majorid == 85211 || grades[i].majorid == 85212 || grades[i].majorid == 83500){ outfile << grades[i].sname << " " << grades[i].institute << " " << grades[i].majorid << " " << grades[i].major << " " << grades[i].ptgrade << " " << grades[i].rtgrade << " " << grades[i].tgrade << " " << grades[i].LearningMethod << " " << grades[i].AdmissionCategory << " " << endl; } } } else cerr << "无法打开文件!" << endl;
获得数据:
整体代码:
#include "stdafx.h" #include<iostream> #include<string> #include<fstream> #include<algorithm> using namespace std; //定义访问类 class Grade { public: char sname[50]; //学生姓名 char sid[20]; //学生考号 char institute[50]; //学院名称 int majorid; //专业代码 char major[20]; //专业名称 float ptgrade; //初试成绩 float rtgrade; //复试成绩 float tgrade; //总成绩 char LearningMethod[20]; //学习方式 char AdmissionCategory[20]; //录取类别 }; int main() { //打开和创立文件: char name2[50]; ifstream infile; infile.open("infile.txt", ios::in); /*string contents;*/ if (infile.fail()) { cout << "error open!" << endl; } cout << "输入要保存的文件名:" << endl; cin >> name2; ofstream outfile(name2, ios::out); if (!outfile) { cout << "open eror!" << endl; exit(1); } //读入文件: Grade grades[3500]; int grade_size = 0; while (!infile.eof()) { infile >> grades[grade_size].sname >> grades[grade_size].sid >> grades[grade_size].institute >> grades[grade_size].majorid >> grades[grade_size].major >> grades[grade_size].ptgrade >> grades[grade_size].rtgrade >> grades[grade_size].tgrade >> grades[grade_size].LearningMethod >> grades[grade_size].AdmissionCategory; grade_size++; } //保存文件: if (outfile) { for (int i = 0; i<grade_size; i++) { if(grades[i].majorid == 81200 || grades[i].majorid == 85211 || grades[i].majorid == 85212 || grades[i].majorid == 83500){ outfile << grades[i].sname << " " << grades[i].institute << " " << grades[i].majorid << " " << grades[i].major << " " << grades[i].ptgrade << " " << grades[i].rtgrade << " " << grades[i].tgrade << " " << grades[i].LearningMethod << " " << grades[i].AdmissionCategory << " " << endl; } } } else cerr << "无法打开文件!" << endl; return 0; }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。