char ch;
while((ch = getchar()) != EOF){
putchar(ch);
}
Приведенный выше код, очевидно, должен скопировать мой ввод. И он работает, для основных текстовых файлов ASCII.getchar() неожиданное поведение
Однако, если я отправлю его gif, в частности, этот, но применим к большинству (http://www.cs.utexas.edu/~peterson/prog2/smile.gif), тогда, когда я перенаправляю stdin для gif и stdout на любой тип файла, а также выполняю diff на оригинале и новый, ошибки в изобилии. В этом случае более половины файла даже не обрабатывается, оно просто завершается. Любые подсказки? Я бы хотел переключиться на другие функции ввода/вывода, если я могу вводить байты за раз.
'getchar' читает стандартный ввод как текст, а не обычный двоичный код. 'gif' - это двоичный файл. – lurker
Да, открытые двоичные файлы в виде двоичных файлов. –
getchar возвращает int, а не символ. – rici