Используйте ignore (), чтобы игнорировать все до следующей строки:
in.ignore(std::numeric_limits<std::streamsize>::max(), '\n')
Если вам нужно сделать это вручную, просто проверьте другой символ, чтобы увидеть, является ли '\ n'
char next;
while(in.get(next))
{
if (next == '\n') // If the file has been opened in
{ break; // text mode then it will correctly decode the
} // platform specific EOL marker into '\n'
}
// This is reached on a newline or EOF
Вероятно, это сбой, потому что вы выполняете поиск, прежде чем очищать плохие биты.
in.seekg(0, ios::beg); // If bad bits. Is this not ignored ?
// So this is not moving the file position.
sz.clear();
getline(in, sz);
cout << sz <<endl; //no longer reads