我在Windows上編程C. 我在嘗試讀取.tar.gz文件時遇到此問題。閱讀.tar.gz文件
和我以前看過的代碼如下:
iFile = fopen("my.tar.gz", "r");
while ((oneChar = fgetc(iFile)) != EOF) {
printf("%c", oneChar);
}
我遇到的問題是,結果只有幾行,而原始文件有成千上萬行(6310行,如你所見)。我的猜測是.tar.gz文件包含一些奇怪的字符(如文件中間的EOF?)。
我的問題是爲什麼記事本++可以顯示整個文件,而我的程序不能。有沒有解決這個問題的方法?
請張貼一個完整的例子。特別是,如何聲明'oneChar'會很有趣。它應該是'int'。以十六進制格式打印文件並與['hexdump']的輸出進行比較可能會更有幫助(http://manpages.debian.org/cgi-bin/man.cgi?query=hexdump&sektion=1),if你有。二進制文件中的尷尬字符可能會導致終端覆蓋自身。最後,在'「rb」'模式下打開文件。 – 5gon12eder
那裏沒問題。我曾聲明:int oneChar; – Emma
**爲什麼**要打開並閱讀'.tar.gz'文件?這很可能是無用的。並請**編輯您的問題**不要評論它...順便說一句,您的問題是操作系統的具體情況,所以請標記與您的操作系統相關的標記。 –