#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<vector>
#include<fstream>
#include<string>
using namespace std;
//vector<string> rs;
//测试,用贤哥的if else
//测试成功
int main()
{
ofstream fout("E:\\Projects\\multi-period vaccination problem__data\\result25.txt", ios::out);
for (int num1 = 1; num1 < 136; num1++) {
//for (int num2 = 0; num2 < 9; num2++) {
//for (int num3 = 0; num3 < 9; num3++) {
char fname[200];
snprintf(fname, sizeof(fname), "E:\\Projects\\multi-period vaccination problem__data\\Example_%d.txt", num1);
fout << "z =="<<num1 << endl;
//ifstream fin("E:\Projects\\multi-period vaccination problem__data\\Example_%d_%d_%dt", ios::in);
ifstream fin(fname);
string filename;
string line;
string str;
string substr;
string a = "Omega";
string b = "J";
string c = "K";
string d = "T";
string e = "XY_j";
string f = "XY_k";
string g = "c_k";
string h = "g_k";
string i = "Q";
string j = "p_nj";
string k = "e_j";
string l = "r_j";
string m = "l_j";
string n = "w_j";
string o = "u_j";
string p = "q_1j";
string q = "q_2j";
string::size_type idx;
if (fin) // 有该文件
{
while (getline(fin, line)) // line中不包括每行的换行符
{
idx = line.find(a);
if (idx != string::npos) {
// 当字符串中包含 "Omega=" 时输出或写入文件,下面类似
// string.substring(26) 是截取字符串的第 26 位至结束,C 应该有类似的方法
string A = line.substr(26, 5);
fout << "Omega=" + A + ";" << endl;
}
else if (line.find(b) != string::npos) {
string B = line.substr(25, 256);
fout << "J=" + B + ";" << endl;
//fout << "J=" << (str.length() - 25, str.length()) << endl;
//System.out.println("J=" + string.substring(25));
}
else if (line.find(c) != string::npos) {
string C = line.substr(24, 256);
fout << "K=" + C + ";" << endl;
//fout << "K=" << (str.length() - 24, str.length()) << endl;
//System.out.println("K=" + string.substring(24));
}
else if (line.find(d) != string::npos) {
string D = line.substr(17, 256);
fout << "T=" + D + ";" << endl;
//fout << "T=" << (str.length() - 17, str.length()) << endl;
//System.out.println("T=" + string.substring(17));
}
else if (line.find(e) != string::npos) {
string E = line.substr(16, 256);
fout << "XY_j=[" + E;
//for (int i = 0; i < 10; i++) {
// fout << E;
//};
//fout << "]" << endl;
// 这里没写完整,之后需要再改一下
//fout << "XY_j=[" << (str.length() - 16, str.length()) <<" ]"<<endl;
//System.out.println("XY_j=[");
}
else if (line.find(f) != string::npos) {
fout << "];" << endl;
string F = line.substr(16, 256);
fout << "XY_k=[" + F;
//fout << "XY_k=[" << (str.length() - 16, str.length()) << " ]" << endl;
//System.out.println("XY_k=[");
}
else if (line.find(g) != string::npos) {
fout << "];" << endl;
string G = line.substr(13, 256);
fout << "c_k=[" + G;
//fout << "c_k=[" << (str.length() - 13, str.length()) << " ]" << endl;
//System.out.println("c_k=[" + string.substring(13) + "]");
}
else if (line.find(h) != string::npos) {
fout << "];" << endl;
string H = line.substr(19, 256);
fout << "g_k=[" + H;
//fout << "g_k=[" << (str.length() - 19, str.length()) << " ]" << endl;
//System.out.println("g_k=[" + string.substring(19) + "]");
}
else if (line.find(i) != string::npos) {
fout << "];" << endl;
string Q = line.substr(18, 256);
fout << "Q=" + Q + ";" << endl;
//fout << "Q =" << (str.length() - 18, str.length()) << endl;
//System.out.println("Q=" + string.substring(18));
}
else if (line.find(j) != string::npos) {
string J = line.substr(22, 256);
fout << "p_nj=[" + J;
//fout << "p_nj=[" << (str.length() - 19, str.length()) << " ]" << endl;
//System.out.println("p_nj=[");
}
else if (line.find(k) != string::npos) {
fout << "];" << endl;
string K = line.substr(18, 256);
fout << "e_j=[" + K + "];" << endl;
//fout << "e_j=[" << (str.length() - 18, str.length()) << " ]" << endl;
//System.out.println("e_j[=" + string.substring(18) + "]");
}
else if (line.find(l) != string::npos) {
string L = line.substr(18, 256);
fout << "r_j=[" + L + "];" << endl;
//fout << "r_j=[" << (str.length() - 18, str.length()) << " ]" << endl;
//System.out.println("r_j=[" + string.substring(18) + "]");
}
else if (line.find(m) != string::npos) {
string M = line.substr(30, 256);
fout << "l_j=[" + M + "];" << endl;
//fout << "l_j=[" << (str.length() - 30, str.length()) << " ]" << endl;
//System.out.println("l_j=[" + string.substring(30) + "]");
}
else if (line.find(n) != string::npos) {
string N = line.substr(12, 256);
fout << "w_j=[" + N + "];" << endl;
//fout << "w_j=[" << (str.length() - 19, str.length()) << " ]" << endl;
//System.out.println("w_j=[" + string.substring(12) + "]");
}
else if (line.find(o) != string::npos) {
string O = line.substr(27, 256);
fout << "u_j=[" + O + "];" << endl;
//fout << "u_j=[" << (str.length() - 12, str.length()) << " ]" << endl;
//System.out.println("u_j=[" + string.substring(27) + "]");
}
else if (line.find(p) != string::npos) {
string P = line.substr(47, 256);
fout << "q_1j=[" + P + "];" << endl;
//fout << "q_1j=[" << (str.length() - 47, str.length()) << " ]" << endl;
//System.out.println("q_1j=[" + string.substring(47) + "]");
}
else if (line.find(q) != string::npos) {
string Q = line.substr(25, 256);
fout << "q_2j=[" + Q + "];" << endl;
fout << endl;
fout << endl;
fout << endl;
//fout << "q_2j=[" << (str.length() - 25, str.length()) << " ]" << endl;
//System.out.println("q_2j=[" + string.substring(25) + "]");
}
else {
// 当这行全是数据时直接输出
fout << line << endl;
//System.out.println(string);
}
}
}
}
return 0;
}
c++ 读取txt
最新推荐文章于 2023-06-16 15:34:21 发布