あるテキストファイルをバイナリエディタで開くと以下のような内容の時
<あるテキストファイルをバイナリエディタで開く>
オフセット 16進値 ASCII値
000ba0 01 00 ... ........C:\.....
上記の16進値の"01"を読み込む時、ASCII値の.(タ際には"")をreadで読み込んだ時に16進値の01を表ヲさせたい場合どうすれば良いでしょうか?
何が言いたいのか、さーっぱりわからない日本語なのですが
質問の初心者ですか?
fread/fgetc で読んで printf("%02X", c); とか。
質問の意味が分からなくて申し訳ありません。
自分がやりたいことは、メモ帳で開くと"黒四角"になってしまって
readを使うと黒四角のままで読み取れないのでバイナリエディタを使用して黒四角の内容を取得したいのが目的です。(上記の16進の数値とかオフセットとかを知りたい)
??バイナリエディタで読んで、値の確認が出来たのですよね??
つまり「値の確認」という目的は既に達成した、と。
それ以上何をしなければならないのでしょうか?
自分でプログラムしてバイナリダンプをしたいとか?
例えば、黒四角のバイナリ情報が下記なります。
アドレス 00000BA0 00
値 00 なし
01 AND
02 OR
テキストファイルの黒四角をreadで読み込んだときに、
バイナリ情報が00なら何も表示しないで01ならANDを表示して
02ならORを表示したいのですがそんなことできますか?
> 黒四角のバイナリ情報
まず、この時点で意味が通じません。
なお、読み込んで表示されないのは文字として表示不可能なコードだから…ではないですか?
0x00だと通常は文字列の終端コードですし、0x01や0x02だとなんらかのコントロールコードでしょう。
また、ファイル中に0x00だの0x01だの表示不可能なコードがあった場合、
通常は「テキストファイル」とは言いません。
(TABの文字コードや改行コードの場合は別でしょうが)
> テキストファイルの黒四角をreadで読み込んだときに、
> バイナリ情報が00なら何も表示しないで01ならANDを表示して
> 02ならORを表示したいのですがそんなことできますか?
「黒四角」が相変わらず不明ですが……
fopen()で開いてfseek()で目的の場所までシークしてfread()で1バイト読み込んで、
その内容をif文などで判定して表示すればいいのではないですか?
# 各関数の使い方などはリファレンス調べて下さい。
# やりたいコトがいまいち見えてこないのですが……