C++ 使用fwrite();二进制输入/输出的fread()

C++ 使用fwrite();二进制输入/输出的fread(),c++,binary,fwrite,fread,C++,Binary,Fwrite,Fread,我使用了大量的浮动。经过多次修改,我终于把它写进了一个二进制文件。稍后打开该文件时,读取过程只读取几把浮点值(根据fread()的返回值,所有值均为0.0f)。读取应该将浮点放入(原始)数组中,并且它不包含原始值。 我正在使用Code::Blocks和MinGW在64位pc上的32位领域中编写程序。。我对c/c++和指针不是很精通 #include<...> const int mSIZE = 6000 ; static float data[mSIZE*mSIZE] ; voi

我使用了大量的浮动。经过多次修改,我终于把它写进了一个二进制文件。稍后打开该文件时,读取过程只读取几把浮点值(根据fread()的返回值,所有值均为0.0f)。读取应该将浮点放入(原始)数组中,并且它不包含原始值。 我正在使用Code::Blocks和MinGW在64位pc上的32位领域中编写程序。。我对c/c++和指针不是很精通

#include<...>

const int mSIZE = 6000 ;
static float data[mSIZE*mSIZE] ;

void myUseFunc(){
    const char *chN = "J:/path/flt_632_55.bin" ;
    FILE *outFile=NULL ;
    # .. sucessfully filling and using data[]
    ..
    size_t st = mSIZE*mSIZE ;
    outFile = fopen( chN  , "w" ) ;
    if(!outFile){ printf("error opening file %s \n", chN); exit(0);}
    else{ 
        size_t indt;
        indt = fwrite( data , sizeof(float), st , outFile );
        std::cout << "floats written to file: " << indt << std::endl ;
        #.. value shows that all values ar written
        # and a properly sized file has appeared at the proper place
    }
    fclose( outFile ) ; 
}

void myLoadFunc( const char *fileName){
    FILE *inFile = NULL ;
    inFile = fopen( fileName, "r");
    if(!inFile){ printf("error opening file %s \n", fileName); exit(0); }
    size_t blok = mSIZE*mSIZE ;
    size_t out;
    out = fread( dataOne, sizeof(GLfloat), blok , inFile);
    fclose(inFile);
    if(out != blok){
        std::cout<< out << std::endl ;
        fputs ("Reading error",stderr);
        # no stderr presented at the console ..
        printf("some error\n") ;
        exit(0);
        # .. program exits at out=14
    }
    ...
}

int main( ){
    ...
    const char *FileName = "J:/path/flt_632_55.bin" ;
    myLoadFunc( FileName ) ;
    ...
}
#包括
常数int mSIZE=6000;
静态浮点数据[mSIZE*mSIZE];
void myUseFunc(){
const char*chN=“J:/path/flt_632_55.bin”;
FILE*outFile=NULL;
#..成功填写和使用数据[]
..
大小\u t st=mSIZE*mSIZE;
outFile=fopen(chN,“w”);
如果(!outFile){printf(“打开文件%s\n时出错”,chN);退出(0);}
否则{
尺寸指数;
indt=fwrite(数据、大小(浮动)、st、输出文件);
std::cout您不是在二进制文件中写入/读取,而是以文本文件的形式打开文件

您需要将
“b”
添加到打开模式,如

outFile = fopen( chN  , "wb" ) ;

std::cout SOLVED!我确实“看”了一下带有这些修饰语的表格……真尴尬。