У меня есть скрипт c++98
на linux, в котором я читаю файл от пользователя по определенному пути. Если файл записан в операционной системе Linux, конец каждой строки будет LF перевода строки. Принимая во внимание, что если файл написан на Windows, он будет заканчиваться CR LF. (Возврат каретки и перевод строки)
Моя проблема заключается в том, что файл записывается в Windows и редактируется в Linux, иногда, если курсор находится в начале строки и вводится пробел, это приведет только кCR, который не будет распознан как новая строка при чтении файла. Я использую ifstream
для чтения строки файла с помощью лжи
Файл, написанный на Linux
![File Written on Linux](https://i.stack.imgur.com/cd4Lw.png)
Файл, написанный на Windows
![File Written on Windows](https://i.stack.imgur.com/5uufP.png)
Конфликт файлов при переносе из windows в linux
![File conflict](https://i.stack.imgur.com/1sm1h.png)
bool ConfigParser::loadFile(const std::string filePath)
{
std::ifstream fio; // Config file descriptor
fio.open(filePath.c_str());
if (fio.is_open())
{
int lineNumber = 0;
std::string line;
while(std::getline(fio, line))
{
lineNumber++;
}
fio.close();
}
}
Есть ли способ заменить все CR перед чтением файла или есть идеи, как решить такую проблему?