我正尝试读取二进制文件第一行元素数的二进制文件。该文件的小数点的版本是:当读取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