C++ Builder. Как считать файл по разделителю?

Нужно прочитать текстовый файл и вывести из него информацию в другой файл по заданному разделителю. Разделитель - 7 табов.

Сделал так:

std::ifstream file ( (Edit1->Text+"\"+name).c_str() );

std::ofstream output ("J:\stroka.tvw");

std::string value;

while ( file.good() )

{

std::getline ( file, value, '\t');

output << value.c_str() <<'\n';

}

Работает, но, естественно, получаются 6 лишних строчек, состоящих из таба.

А если так:

std::getline ( file, value,"\t\t\t\t\t\t\t");

То получаю ошибку:

[C++ Error] Unit1.cpp(104): E2285 Could not find a match for '_STL::getline<_CharT,_Traits,_Alloc>(_STL::ifstream,_STL::string,char *)'

И таки что с этим делать?

0 2019-09-26 01:39:21

Ответов: 1

В общем, кому интересно, решил я эту проблему проверкой на содержимое строки (отсеял пустые строки). Выглядит это так:


std::ifstream file ( (Edit1->Text+"\"+name).c_str() );

std::ofstream output ("J:\stroka.tvw");

std::string value;

while ( file.good() )

{

std::getline ( file, value, '\t');

if (value != "") {

output << value.c_str() <<'\n';

}

}