Если в файле есть окончания строк в Windows (то есть каждая строка заканчивается переводом каретки + перевод строки, а не просто переводом строки, как ожидает Linux), тогда line
будет "BEGIN\r"
вместо "BEGIN"
в Linux.
Чтобы исправить это, вы можете запустить dos2unix
для файла, чтобы преобразовать его в конец строки Linux:
dos2unix example.txt
В качестве альтернативы, если вы хотите, чтобы файлбыть идентичными в обеих системах, вы можете открыть его в двоичном режиме, а не в текстовом режиме:
ifstream myfile ("example.txt", ios_base::binary);
, и тогда обе системы будут читать файл одинаково.(Если он использует окончания строк Windows, ваша программа должна будет обрабатывать возврат каретки, но, по крайней мере, вы увидите последовательное поведение.)