У меня небольшая проблема. Я хочу пропустить некоторые строки в файле. банкомат, которым я пользуюсь
for(int i=0; i < ln -1; ++i)
{
ifFile.ignore((std::numeric_limits<std::streamsize>::max)(),'\n');
}
На cplusplus.com написано, что ignore выдает исключение, если eof достиг. Но я не могу получить это с помощью try/catch. Что я сделал не так? Или я что-то неправильно прочитал?
Что мне нужно, так это то, что я хочу снова начать с первой строки для некоторых операций, если достигнут eof.
Итак, я попробовал что-то, но это не сработало:
for(int i=0; i < ln -1; ++i)
{
try
{
ifFile.ignore((std::numeric_limits<std::streamsize>::max)(),'\n');
}
catch(exception e)
{
if(ifFile.eof())
{
ifFile.clear(ifFile.eofbit);
ifFile.seekg(std::ios::beg);
_readCounter.currLine = 1;
}
}
}
Но он не столкнулся с catch().
Если есть какие-то вопросы, не стесняйтесь спрашивать.
Исправил один:
for(int i=0; i < ln; i++)
{
if(ifFile.ignore((std::numeric_limits<std::streamsize>::max)(),'\n').eof())
{
ifFile.clear(ifFile.eofbit);
ifFile.seekg(std::ios::beg);
}
}