Я обнаружил, что перенаправление командной строки Windows автоматически заменит '\ n' на '\ r \ n'.Есть ли способ избежать этой ситуации?Потому что после перенаправления stdout или stderr вы получите '\ r \ r \ n' вместо '\ r \ n', если вы напишите '\ r \ n' в консоль.
Большое спасибо!
Вы можете просто попробовать простую программу:
fprintf(stdout,"Hello, world!\r\n");
, затем запустить ее с перенаправлением:
demo 1>demo.log
Используя любой HEX-редактор, вы обнаружите, что '\r \ n 'представлен как' \ r \ r \ n '.
ОБНОВЛЕНИЕ:
@ steve-jessop Я решил эту проблему с помощью setmode
, что приведет к stdout
используя O_BINARY
режим.Так что поток не будет переводить \n
в \r\n
.
Большое спасибо!