PPM ファイルからピクセル データを読み込もうとしています。ヘッダーを読み取る関数があるので、ヘッダーがピクセル データの先頭を指していることがわかります。fgetc(file) を使用してみましたが、値が 1 桁以上の場合は機能しません。また、配列を使用して配列を int または char に変換しようとしましたが、各値の桁数を知る方法がありません。また、値が空白で区切られているかどうかもわかりません。基本的に、ピクセルデータを抽出する方法が必要です。(私はCを使用しています。)
現在の私のコードは次のとおりです。
char read_byte(FILE *ipt) {
int c, i=0, sum=0;
while (i<16) {
c=fgetc(ipt);
if((i%2)!=0 {
if(c&1) {
sum+=pow(2,i/2);
}
}
i++;
}
return (char)sum;
}
編集:最初はファイルがASCII値として保存されていると思っていましたが、バイナリとして保存されていることに気付きました。今、私はそれを六角形のように振る舞わせていると思います。それが正しいかどうかはわかりません。私は本当に立ち往生しています。
編集:私のコードを少し変更しました
char read_byte(FILE *ipt) {
int c, i=0, sum=0;
while(i<8) {
c = fgetc(ipt);
c=c&1;
sum+=c*pow(2,i);
i++;
}
return sum;
}
合計を %c として出力します