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;
}声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
