fread()とfwrite()関数のファイル読み書き操作

2779 ワード

[cpp] view plain copy print ?
#include    
  • int main()  

  • {  
  •     FILE* pFile;  

  •     float buffer[] = { 2.0 , 3.0 , 8.0 };  
  •     pFile = fopen("myfile.bin" , "wb");//ファイル書き込みを開く
  •     fwrite(buffer , 1 , sizeof(buffer) , pFile);//浮動小数点配列をファイルmyfile.に書く.bin   
  •     fclose(pFile);//ファイルを閉じる
  •   
  •     float read[3];  

  •     pFile = fopen("myfile.bin" , "rb");//ファイル読み込みを再開する
  •     fread(read , 1 , sizeof(read) , pFile);//ファイルからデータを読む
  •     printf("%f\t%f\t%f", read[0], read[1], read[2]);  
  •   

  •     fclose(pFile);//ファイルを閉じる
  •     return 0;  

  • }  
    #include 
    int main()
    {
        FILE* pFile;
        float buffer[] = { 2.0 , 3.0 , 8.0 };
        pFile = fopen("myfile.bin" , "wb"); //  
        fwrite(buffer , 1 , sizeof(buffer) , pFile); //   myfile.bin
        fclose(pFile); //  
    
        float read[3];
        pFile = fopen("myfile.bin" , "rb"); //  
        fread(read , 1 , sizeof(read) , pFile); //  
        printf("%f\t%f\t%f
    ", read[0], read[1], read[2]); fclose(pFile); // return 0; }

    [cpp] view plain copy print ?
    /*fread example:read a complete file完全なファイルを読み込む*/
  • #include    

  • #include    
  •   

  • int main()  
  • {  

  •     FILE* pFile;//ファイルポインタ
  •     long lSize;//ファイル長

  •     char* buffer;//ファイルバッファポインタ
  •     size_t result;//戻り値は読み出したコンテンツ数
  •   
  •     pFile = fopen("myfile.bin" , "rb");  

  •     if (pFile == NULL) {fputs("File error", stderr); exit(1);}//ファイルエラーの場合、1 を終了
  •   

  • //obtain file size:ファイルサイズを取得
  •     fseek(pFile , 0 , SEEK_END);//ポインタファイル末尾
  • へ移動
        lSize = ftell(pFile);//ファイル長を取得
  •     rewind(pFile);//関数rewind()ファイルポインタをstream(ストリーム)で指定された先頭に移動し、ストリームに関連するエラーとEOFタグ
  • をクリアします.
      
  • //allocate memory to contain the whole file:ファイル全体にメモリバッファ
  • を割り当てる
        buffer = (char*) malloc(sizeof(char) * lSize);//バッファを割り当て、前のlSize を押す
  •     if (buffer == NULL) {fputs("Memory error", stderr); exit(2);}//メモリ割り当てエラー、終了2
  •   
  • //copy the file into the buffer:バッファ
  • にコピー
        result = fread(buffer, 1, lSize, pFile);//戻り値は読み出したコンテンツ数
  •     if (result != lSize) {fputs("Reading error", stderr); exit(3);}//戻り値ファイルサイズでない場合、読み込みエラー
  •   
  •     /* the whole file is now loaded in the memory buffer.*///ファイル全体がメモリバッファ
  • にロードされます.
      
  • //メモリを読んで、自分がどのように使ったかを見て......  

  •     // ...........   
  •   

  •   
  • //terminate//ファイル終了
  •     fclose(pFile);  
  •     free(buffer);  

  •     return 0;  
  • }