件名通りの質問ですが、4バイトのデータを2バイトにしてファイル書き込みを行いたいと思っています。
上記はどのようにすればいいでしょうか。サンプル等あると助かります。
4バイトのデータを2バイトにしてファイル書き込みするには
Re: 4バイトのデータを2バイトにしてファイル書き込みするには
4バイトのデータを2バイトに変換した結果、場合によっては
変換の前後で値が変わってしまうことがあります。
それでもかまわないのでしょうか。
変換の前後で値が変わってしまうことがあります。
それでもかまわないのでしょうか。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 4バイトのデータを2バイトにしてファイル書き込みするには
言語がわかりませんが、とりあえずC言語で書いてみました。
fopen以外のエラーチェックは省略しています。
fopen以外のエラーチェックは省略しています。
#include <stdio.h>
/* プログラマ向けに要素数を書いているが、コンパイラは無視する */
void convert(char out[2], const char in[4]) {
/* 何らかの変換規則 */
out[0] = in[0] | in[1];
out[1] = in[2] | in[3];
}
int main(void) {
const char *filename = "test.dat";
char four_bytes_of_data[4] = {0xde, 0xad, 0xbe, 0xef};
char data_to_write[2];
FILE* fp;
fp = fopen(filename, "wb");
if (fp == NULL) {
puts("failed");
} else {
convert(data_to_write, four_bytes_of_data);
fwrite(data_to_write, sizeof(data_to_write), 1, fp);
fclose(fp);
}
return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)