私の割り当ては、複数のバイナリファイルをマージし、それをすべてtxtファイルに入れることです。私はすでにファイルのフォーマットを持っています。私は既にそれらを書きましたが、それらをマージするのに失敗します。 Output from the binary file into the txt file.2つのバイナリファイルをマージします。ファイル間の残りのデータ
int merge_files()
{
FILE *f1, *ft;
char ch, name1[20];
int error, n;
char buffer[10000];
printf("\n Give name of file: "); gets_s(name1, 19);
while (strlen(name1) != NULL)
{
fopen_s(&f1, name1, "rb");
fopen_s(&ft, "finaldata.dat", "a");
if (!f1)
{
error = 1;
break;
}
else
{
error = 0;
rewind(f1);
while (n = fread(buffer, sizeof(char), 10000, f1))
{
fwrite(buffer, sizeof(char), n, ft);
fflush(ft);
}
}
fclose(f1);
fclose(ft);
printf("Files had been merged");
printf("\n Give name of file: "); gets_s(name1, 19);
}
return error;
}
私の悪いところは、まったく間違っているようです...私は、MSのバージョンをより詳細にチェックする必要があります。 –
@ DavidC.Rankin動作しません。Visual Studio 2013を使用します。FILE *は、FILEタイプのパラメータと互換性がありません。** –
私は間違って言った - 謝罪します。私は 'fopen'と仮定し、' fopen_s'は同じパラメータを取った。私はMSを使用していないので、whozcraigが 'fopen_s'を指摘して実際にFILE *へのポインタを必要としていたことに驚いていました。あなたのオリジナルに戻してください... –