- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルから16進数文字列として読み込めない)
ファイルから16進数文字列として読み込む方法
このQ&Aのポイント
- ファイルから16進数文字列として読み込めない場合、数字列として配列に変換することで解決できます。
- 具体的には、ファイルから読み込んだ16進数文字列を16個の配列に分割し、数字列として扱えるようにします。
- これにより、16進数文字列を16個の配列からなる数字列として表示することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、文字列を1行読み込めるバッファを用意して、まるっと読み込む。 # ファイルならfgets()辺り。 16進数2桁+終端コード('\0')を格納できる配列を用意する。 ループ用のカウンタも必要ですが。 strncpy()で16進数2桁を作業用領域にコピー。 作業領域に終端コードを念のためセットして strtol()で数値化して配列(num[])に格納する。 というのをstrncpy()でのコピー開始位置を移動させながら繰り返す。 >for(int i=0; i<16; i++) >printf("%x", num[i]); >を実行すると(*)のように表示されるようにしたいです。 この書式指定では無理です。 2b7e151628aed2a6abf715889cf4f3c と表示されるでしょう。 printf("%02x ", num[i]); にしないと。
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.2
scanf でできるんじゃない? %2x でも使えばいいと思う.