我正嘗試讀取二進制文件第一行元素數的二進制文件。該文件的小數點的版本是:當讀取fread二進制文件時無法獲得正確的元素數
131072 32.75988 71.6028 113.0817173 ..... 95.6124
我的代碼讀取該文件是:
char TextName1[] = "BinaryArrayWithLength.bin";
FILE *InFile;
InFile = fopen("BinaryArrayWithLength.bin", "rb");
if(InFile == NULL)
{
printf("Read Error\n");
return 0;
}
else
{
fread(Length, sizeof(int), 1, InFile);
}
printf("%d\n", *Length);
的問題是我能得到正確的長度是131072,如果我在Eclipse編譯它。如果我用gcc編譯我的代碼,我得到的編號是168430090. 我猜這個問題是由不同的編譯器造成的。我的gcc版本是4.2.1。我使用的Eclipse是Indigo for Mac。我的Mac是OSX Lion。
什麼是「長度」?你爲什麼在C++中使用'fopen'和family? – 2012-02-06 01:46:04
這不可能是您的完整代碼。什麼是「長度」? – Borealid 2012-02-06 01:46:04
「(...)**二進制**文件的第一行**。」你必須做出決定。它可以是二進制文件,也可以是文本文件(即帶有行)。 – 2012-02-06 01:49:07