Mong mọi người giúp em giải thích đoạn code

Chào mọi người!
Em xem đi xem lại nhưng vẫn hiểu hiểu hơi mơ hồ, mong mọi người bỏ ít thời gian giải thích giúp em với ạ.
Em cảm ơn!

void update(string tenFile, string a, string b) 
{
	string x;
	string temp;
	temp = "E:/Project Nhom 5 - CTDL Sang T4/TaiKhoan/" + tenFile + ".dat";
	const char* y = temp.c_str();
	ifstream ifile (temp);
	ofstream ofile ("temp.dat");
	while (!ifile.eof())
	{
		getline(ifile,x);
		if (x == a)
		{
			ofile << b << endl;
		}
		else
		{
			ofile << x << endl;
		}
	}
	ifile.close();
	ofile.close();
	remove(y);
	rename("temp.dat", y);

}

Đổi một dòng a sang b trong tập tin thôi.
Trong while là quá trình đọc song song với ghi mới (vào tập tin tạm). Thoát while thì xóa tập tin cũ, chuyển tập tin tạm vào vị trí tập tin cũ.

3 Likes

Em cảm ơn ạ!
Thật tệ vì em vẫn không hiểu dòng:

const char* y = temp.c_str();

và điều kiện trong if else trong đoạn code , mong được giải thích thêm ạ!

Vì hàm C không đọc được std::string :slight_smile:

4 Likes

Thanks Bro!:grinning:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?