Я переношу программу, созданную в C++ из MS Studio в Ubuntu. Программа отлично работает, за исключением случаев, когда она читается из текстового файла.
Мой текстовый файл состоит из строк информации, разделенных разделителем :
General Manager:G001:def
Customer:C001:def:Lim:Tom:Mr:99999999:[email protected]:Blk 145 B North #03-03 Singapore 111111
Метод чтения
while (getline(afile,line,'\n')) //read line and store string in variable line
{
stringstream ss(line);
string s;
while (getline(ss,s,':'))
{
word.push_back(s);
}
word.clear();
}
На платформе Windows он хранится правильно, как def
Однако на платформе Ubuntu он хранится как def\\r
Он отлично работает для записи C ustomer Record
но дает проблемы для General Manager
Я знаю, что это имеет какое-то отношение к возврату каретки, но я не уверен, как его разрешить
Если текстовый файл был создан в Windows, вы можете использовать команду dos2unix, чтобы удалить лишний \r из файла. Команда просто dos2unix filenamegoeshere