C++ファイル固有行の変更/削除を実現

8361 ワード

#include
#include
#include
using namespace std;

//          (   )   ,           
void delLine(string file_name, string name) {
	ifstream in(file_name);  //         

	string data = "";  //       
	string line, tmp;
	while (getline(in, line)) {
		istringstream is(line);
		is >> tmp;
		if (tmp == name)
			;  //    ,     
		else
			data += (line+"
"
); } in.close(); // ofstream os(file_name); // , os << data; // os.close(); } // name , void changeLine(string file_name, string name, string passward="", string new_name="") { ifstream in(file_name); string data = ""; string line, tmp; while (getline(in, line)) { istringstream is(line); is >> tmp; if (tmp == name) { if (new_name.empty()) // name data += name; else data += new_name; data += " "; is >> tmp; if (passward.empty()) // password data += tmp; else data += passward; data += "
"
; } else data += (line + "
"
); } in.close(); ofstream os(file_name); os << data; os.close(); }

個人的には、この戦略に必要な空間が大きすぎて、特にファイルが大きい場合です.他の簡単な方法を知っていたら教えてください.ありがとうございます.