基本的に私は数値を含むテキストファイルを持っています。私は数を0に変更して開始し、ファイルから2バイトを読み込みます(intは2バイトなので)、intに変換しました。結果を印刷しますが、奇妙な結果が表示されます。ファイルから2バイトを読み込んでintに変換すると、間違った出力が返されます
私は0を持っているので何らかの理由で2608を出力します。
私は、0から1までのオフセットが数字を表すファイルを読み込む必要があると書かれています。だから、私は文字の代わりにバイトを読み込んでいるのです...
私はこの問題が文字で読むのではなくバイトを読み込むことによるものだと考えています。 ?私は本当にわからないんだけど
void readFile(FILE *file) {
char buf[2];
int numRecords;
fread(buf, 1, 2, file);
numRecords = buf[0] | buf[1] << 8;
printf("numRecords = %d\n", numRecords);
}
何BUF [0] |:ここ
は私のコードですbuf [1] < < 8ですが、私は別の質問からそれを得ました...だから、それも問題であると思います。
となります。テキストファイルを持っているか、2バイトのバイナリ整数を持つファイルがあります。同時に両方ではありません。 – EJP
@EJP私は完全に空白で、私のintがASCII形式であることを忘れてしまった。 – Logan