char ch;
while((ch = getchar()) != EOF){
putchar(ch);
}
上面的代碼顯然是應該複製我的輸入。它對基本的ASCII文本文件起作用。但是,如果我發送一個gif,尤其是這一個,但適用於大多數(http://www.cs.utexas.edu/~peterson/prog2/smile.gif),那麼當我重定向stdin爲gif,並且stdout爲任何文件類型,並且在原始文件上運行diff並且新的,錯誤嘉豪。在這種情況下,超過一半的文件甚至沒有處理,只是退出。 任何線索?我願意切換到另一個輸入/輸出功能,只要我可以一次輸入一個字節。getchar()意外的行爲
'getchar'正在讀取標準輸入文本,而不是一般的二進制文件。 'gif'是一個二進制文件。 – lurker
是的,打開二進制文件作爲二進制文件。 –
getchar返回一個int,而不是char。 – rici