如何用c++读取txt文件,显示在c++的运行界面,我要一个可以运行,而且可以看到结果的小程序

如题所述

第1个回答  2024-12-13
C++读取txt文件并显示在运行界面的示例程序如下。假设文件夹中存在data.txt和err.txt两个文件。程序将读取data.txt中的内容并过滤,输出到err.txt。

首先定义一个结构体用于存储学生信息:

typedef struct {
string name;
int age;
string add;
void out(){cout<<"Name:"<<<<"Age:"<<<<"Add:"<<endl; }
}

接着,程序使用文件流读取data.txt的内容,过滤不符合条件的数据,并输出到err.txt文件中。

下面是完整的程序代码:

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>

using namespace std;

typedef struct {
string name;
int age;
string add;
void out(){cout<<"Name:"<<<<"Age:"<<<<"Add:"<<endl;}
}student;

int main() {
ifstream infile("data.txt");
if(!infile) {
cerr<<"open error!"<<endl;
return 1;
}

student *st = new student[100];
int n = 0;
while(infile) {
infile >> st[n].name >> st[n].age >> st[n].add;
n++;
}

infile.close();

ofstream outfile("err.txt");
for(int i = 0; i < n; i++) {
int flag = 0;
if(st[i].name.size() > 120 || st[i].age < 0) flag = 1;
if(flag == 0) {
st[i].out();
outfile >> st[i].name >> st[i].age >> st[i].add;
}
}

outfile.close();
return 0;
}

该程序可以运行,通过编译并执行后,可以看到err.txt文件的内容。此文件包含了过滤后的学生信息。

为了更好地理解程序的功能,可以将data.txt中的数据修改为:

8 zhangSan 23 beijing
lisi 123 shanghai
mawu 56 liaoning
22 zhao3LIU 12 guangxi
huangqi 30 jiangxi
wangba -32 hu2nan
haijiu 43 yunnan
haoshi 21 xinjiang

运行程序后,err.txt将包含:

lisi 123 shanghai
mawu 56 liaoning
zhao3LIU 12 guangxi
huangqi 30 jiangxi
haijiu 43 yunnan
haoshi 21 xinjiang

以上代码在Visual Studio等环境下可以编译运行,通过修改data.txt文件内容,可以观察到程序的处理结果。
相似回答