Erstmal ist doch die Frage angebracht wieso man diesen dreckigen Mist ala CString, CFile usw. nutzt.
Dann bietet C++ die Funktion std::getline, welche als Parameter einen istream by-reference übergeben bekommt sowie einen std::string ebenfalls by-reference der mit dem Ergebnis gefüllt wird. Angemerkt sei, dass istream selbst durchaus eine getline-Funktion hat, diese aber nur mit C-Strings arbeitet.
Normalerweise würde std::getline bis zu einem '\n', also einem Zeilenumbruch, lesen. Dieses Verhalten lässt sich aber anpassen indem man als 3. Variable einen delimeter (deutsch in etwa "Trenner") als char übergibt.
Das ganze könnte z.B. so aussehen:
std::ifstream file("meinTextfile.txt");
std::string buf;
if (!file.is_open()) { throw "Error loading File"; }
while (file.good() && std::getline(file, buf, ';'))
{
if (!buf.empty())
{
// tu was tolles mit dem buffer
}
}
file.close();