Cでバイナリファイルにnバイトのバイトを書き込む必要がありますが、どのように書くことができますか?すべてのバイトは0である必要があります。バイト0をCのバイナリファイルに書き込む
私はcharを書きますが、これが正しい方法であるかどうかはわかりません。
int i;
for(i=0; i < 200; i++){
fwrite(0, sizeof(char), 1, file);
}
Cでバイナリファイルにnバイトのバイトを書き込む必要がありますが、どのように書くことができますか?すべてのバイトは0である必要があります。バイト0をCのバイナリファイルに書き込む
私はcharを書きますが、これが正しい方法であるかどうかはわかりません。
int i;
for(i=0; i < 200; i++){
fwrite(0, sizeof(char), 1, file);
}
fwrite
の最初の引数が有効なポインタでなければなりません。
あなたは、このようなファイルへの即時の文字(バイト)を記述するためにfputc
を使用することができます。
int i;
for(i=0; i < 200; i++){
fputc(0, file);
}
書き込むデータを含むバッファを指定する必要があります。あなたの場合、 '\ 0'をchar変数に格納し、そのアドレスを渡すことができます。
char c = 0;
int i;
for (i = 0; i < 200; i++)
fwrite(&c, sizeof c, 1, file);
別の(より効率的な)溶液を直接200個の要素のバッファを作成している:
char buff[200] = {0}; // declare array with 200 '\0' bytes
fwrite(buff, 1, 200, file);
読む:http://en.cppreference.com/w/c/io/fwrite –