c++ 读取txt

#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值