ファイルから特定の整数を読み取る際に問題がありますが、その理由がわかりません。最初にファイル全体を読み取って、どれぐらい大きいかを調べてから、ポインタを最初にリセットします。私はその後、3つの16バイトブロックのデータを読みました。その後、1 20バイトのブロックと私は整数として最後に1バイトを読み取るしたいと思います。しかし、私はキャラクターとしてファイルに書き込む必要があったが、それは問題ではないと思う。私の問題は、15の整数値ではなくファイルから読み取ったときに49であることです.ACIIの表をチェックしましたが、1または5の16進数または8進値ではありません。私は完全に混乱しています私が正しいと信じているread(inF, pad, 1)
です。私は整数変数が4バイトであることを知っていますが、ファイルには1バイトのデータしか残っていないので、最後のバイトだけを読み込みます。
私のコードは、機能を再現している(それはたくさんのように思えるが、それはそれはないと思う)C言語のテキストファイルからの読み取り
コードは、私がバイトを読んだとき
#include<math.h>
#include<stdio.h>
#include<string.h>
#include <fcntl.h>
int main(int argc, char** argv)
{
char x;
int y;
int bytes = 0;
int num = 0;
int count = 0;
num = open ("a_file", O_RDONLY);
bytes = read(num, y, 1);
printf("y %d\n", y);
return 0;
}
は私の質問を要約すると、どのように来ていますテキストファイルから15を格納すると、整数表現から15と見なすことはできませんか? ご協力いただければ幸いです。 ありがとう!
私は非常にあなたがデータでやっているものを見つけることができませんので、「から番号を読み取るようにあなたはおそらく、単純な何かにあなたのコードを減らす必要がありますファイル "と"数字をファイルに書き込む " - これは実験するほうがはるかに簡単です。 – che
@cheコードを類似しているが非常にシンプルに変更しましたが、私はまだ同じ問題を抱えていますが、提案はありますか? – tpar44
ここにヒントがあります:49は、ASCII文字 '1'の小数値です。 – blueshift