Текстовый файл преобразует символ C '\n'
в собственную строку, заканчивающуюся на выходе, и преобразует собственную строку, заканчивающуюся на вводе, в один '\n'
.
Чтобы получить требуемый результат,необходимо преобразовать stdout
в поток двоичных файлов.
Частичный ответ найден здесь .Если у вас есть C99-совместимая библиотека, то:
if (freopen(0, "wb", stdout) == 0)
...oops...operation failed...
попытается изменить стандартный вывод в двоичный поток.Однако в Windows может возникнуть проблема с C99-совместимой библиотекой.Номинально это портативный (потому что стандартный) ответ.Вероятно, есть функция, специфичная для Windows, для выполнения той же работы.