cでファイル全体を読み取ることができません

ユーリ・バリノフ

コンテンツをあるファイルから別のファイルに移動しようとしています。
私のコード:

    char *path = extractFileName(args[1]);
    if (path == 0)
        return -1;
    FILE *input = fopen(path, "r");

    rewind(input);
    fseek(input, 0L, SEEK_END);
    long sz = ftell(input);
    printf("sz: %ld\n", sz);
    rewind(input);

    size_t a;
    FILE *result = fopen("result.mp3", "w");
    size_t counter = 0;
    char buffer[128];
    while ((a = fread(&buffer[0], 1, 128, input)) != 0) {
        fwrite(&buffer[0], 1, a, result);
        counter += a;
    }

    printf("%d\n", counter);
    printf("ferror input: %d\n", ferror(input));
    printf("feof input: %d\n", feof(input));

実行後、印刷します

sz: 6675688
25662
ferror input: 0
feof input: 16

私の知る限り、Cは入力ファイルのサイズが665kbであることを知っていますが、25662バイトを超えて読み取ろうとするとeofを返します。私が間違っているのは何ですか?

ショーン

出力ファイル名はですので、result.mp3非テキストデータを扱っているのは間違いありません。つまり、ファイルをバイナリモードで開く必要が"rb"あり"wb"ます。このコードをWindowsで実行している場合、それを行わないと、表示されている動作が説明されます(そのプラットフォームでは、テキストモードで特定のバイト(0x1A)を読み取ると、実際にはファイルの終わりではない場合でも、ファイルの終わりを通知します)、バイナリモードを使用すると修正されます。他のOSでは、これは何の操作でもありませんが、読者にあなたの意図と使用する予定のデータの種類を教えてくれるので、厳密に必要とされていなくても良い考えです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ファイル全体を読み取ることができません

分類Dev

bsddb3はファイル全体を読み取ることができません

分類Dev

Android-JavaはJSONファイル全体を読み取ることができません

分類Dev

600MBのテキストファイルの内容全体を読み取ることができません

分類Dev

pgAdminでCSVファイルを読み取ることができません。

分類Dev

Eclipseでファイルを読み取ることができません

分類Dev

iGraphpythonで.txtファイルを読み取ることができません

分類Dev

Pythonでファイルを読み取ることができません

分類Dev

Laravel:構成ファイルを読み取ることができません

分類Dev

Ruby-yamlファイルを読み取ることができません

分類Dev

XCOPYは/ EXCLUDEファイルを読み取ることができません

分類Dev

Macは.imgファイルを読み取ることができません

分類Dev

VHDファイルを読み取ることができません

分類Dev

AndroidStudioはjsonファイルを読み取ることができません

分類Dev

PHPはtxtファイルを読み取ることができません

分類Dev

pixelmed:dicomファイルを読み取ることができません

分類Dev

SwiftCSVImporterはCSVファイルを読み取ることができません

分類Dev

FutureAccessListのファイルを読み取ることができません

分類Dev

Cのファイルに書き込まれた行を読み取ることができません

分類Dev

C#でOLEDBを使用してxlsxファイルを読み取ることができません

分類Dev

dlmreadを使用してタブ区切りファイル全体を読み取ることはできません

分類Dev

jsonファイルのphp読み取り-多層要素を読み取ることができません

分類Dev

cでディレクトリ/ファイルを再帰的に読み取ることができません

分類Dev

ビルドでifstreamを使用してファイルを読み取ることはできませんが、IDEで読み取ることはできます

分類Dev

Objective-Cのmain.mからファイルを読み取ることができません

分類Dev

テキストファイルC ++の内容を読み取ることができません

分類Dev

Cのテキストファイルから構造を読み取ることができません

分類Dev

ファイルを開くことができません!ファイルからの読み取り、c ++、xcode

分類Dev

一時ファイルから読み取ることができません

Related 関連記事

  1. 1

    ファイル全体を読み取ることができません

  2. 2

    bsddb3はファイル全体を読み取ることができません

  3. 3

    Android-JavaはJSONファイル全体を読み取ることができません

  4. 4

    600MBのテキストファイルの内容全体を読み取ることができません

  5. 5

    pgAdminでCSVファイルを読み取ることができません。

  6. 6

    Eclipseでファイルを読み取ることができません

  7. 7

    iGraphpythonで.txtファイルを読み取ることができません

  8. 8

    Pythonでファイルを読み取ることができません

  9. 9

    Laravel:構成ファイルを読み取ることができません

  10. 10

    Ruby-yamlファイルを読み取ることができません

  11. 11

    XCOPYは/ EXCLUDEファイルを読み取ることができません

  12. 12

    Macは.imgファイルを読み取ることができません

  13. 13

    VHDファイルを読み取ることができません

  14. 14

    AndroidStudioはjsonファイルを読み取ることができません

  15. 15

    PHPはtxtファイルを読み取ることができません

  16. 16

    pixelmed:dicomファイルを読み取ることができません

  17. 17

    SwiftCSVImporterはCSVファイルを読み取ることができません

  18. 18

    FutureAccessListのファイルを読み取ることができません

  19. 19

    Cのファイルに書き込まれた行を読み取ることができません

  20. 20

    C#でOLEDBを使用してxlsxファイルを読み取ることができません

  21. 21

    dlmreadを使用してタブ区切りファイル全体を読み取ることはできません

  22. 22

    jsonファイルのphp読み取り-多層要素を読み取ることができません

  23. 23

    cでディレクトリ/ファイルを再帰的に読み取ることができません

  24. 24

    ビルドでifstreamを使用してファイルを読み取ることはできませんが、IDEで読み取ることはできます

  25. 25

    Objective-Cのmain.mからファイルを読み取ることができません

  26. 26

    テキストファイルC ++の内容を読み取ることができません

  27. 27

    Cのテキストファイルから構造を読み取ることができません

  28. 28

    ファイルを開くことができません!ファイルからの読み取り、c ++、xcode

  29. 29

    一時ファイルから読み取ることができません

ホットタグ

アーカイブ