Lúng túng trong phần nhập kí tự từ file

Chào mọi người em có dòng code như này:

void ReadFile(istream& InDev, char*& a)
{
	if (!InDev) { cout << "Can't search"; exit(0); }
	int n = 0; char CharFake ;
	while (InDev.get(CharFake))
	{
		if (InDev.fail()) { DesPtr(a); cout << "Can't read"; exit(0); }
		InitlizationChar(a, n, CharFake);
		n++;
	}
//	cin.clear(); cin.ignore('\0');
}

Hàm này em dùng để lấy kí tự từ trong file ra và tạo thành một con trỏ mảng, khi dùng lần thứ nhất thì mọi thứ ok, nhưng sang lần thứ 2 thì nó lại gặp vấn đề, khi đến dòng while nó nhảy thẳng xuống cuối hàm và kết thúc, em nghĩ do có dính kí tự EOF trong bộ đệm, nhưng em không biết cách sửa, mong mọi người giúp em ạ!

em muốn làm gì với hàm này :V Nếu đọc chuỗi sao ko xài std::string? Hàm InitlizationChar làm cái gì ở đây?

3 Likes

Coi trong chương trình đã có đóng stream đàng hoàng chưa.
Mở stream ra xài mà ko đóng lại, lần sau chạy tiếp thì nó cứ nằm ở EOF mà em ei.

3 Likes

Hàm InitlizationChar em dùng để thêm kí tự vào mảng kí tự ở mỗi lần lấy kí tự từ file ấy anh :blush: .Em không quen dùng string lắm ạ.

Dạ em cảm ơn anh, em sai là do không biết đóng stream ạ. Em CẢM ƠN anh rất nhiều!

^^
Bổ sung thêm, Ko đóng stream thì nhiều khi dùng chương trình khác mở file đó lên sửa xóa gì nó ko cho đâu.
Nó sẽ báo "file này đã có thằng đang xài rồi, mày ko dc edit "

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