У меня есть следующая функция:
void process (std::string str)
{
std::istringstream istream(str);
std::string line;
std::string specialStr("; -------- Special --------------------\r"); // win
//std::string specialStr("; -------- Special --------------------"); //linux
while (getline(istream,line))
{
if (strcmp(specialStr.c_str(), line.c_str()) != 0)
{
continue;
}
else
{
//special processing
}
}
}
Я читаю строки из std::istringstream построчно, используя getline
, пока не «встретлю» специальную строку, после чего я должен выполнить специальную обработку для следующих строк. Специальная строка:
; -------- Special --------------------
Когда я читаю соответствующую строку в окнах, она заканчивается на '\r' :
(; -------- Special --------------------\r
) В Linux в конце не появляется '\r'. Есть ли способ последовательно читать строки, не различая, Linux это или Windows?
Спасибо
str
? (вы можете опубликовать код, вы знаете) - person jrok   schedule 28.04.2013