Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > \r\n, \n и cout/printf


Автор: leniviy 23.7.2007, 10:38
в VS2005 написал прогу, которая параллельно запускает несколько консольных процессов, буферизует их stdout , а потом последовательно выводит содержимое в свой stdout. 
заметил, что если написать printf("\n") или cout << "\n" или cout.write("\n",2), то на выходе я получаю "\r\n"! А "\r\n" превращается в "\r\r\n"! Как это отключить? Сейчас мне приходится перед выводом искать в буфере "\r\n" и заменять их на "\n"

Автор: Shaggie 23.7.2007, 10:42
cout << endl
выводит символы конца строки согласно настройкам системы.

Автор: bsa 23.7.2007, 10:48
тебе надо переоткрыть все файлы, как бинарные, тогда '\n' не будет заменяться на '\r\n'.

Автор: leniviy 23.7.2007, 10:48
Shaggie, я чужие данные вывожу

Добавлено через 42 секунды
как переоткрыть cout как бинарный?

Автор: leniviy 23.7.2007, 11:07
setmode(fileno(stdout), O_BINARY);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)