• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイルから16進数文字列として読み込めない)

ファイルから16進数文字列として読み込む方法

このQ&Aのポイント
  • ファイルから16進数文字列として読み込めない場合、数字列として配列に変換することで解決できます。
  • 具体的には、ファイルから読み込んだ16進数文字列を16個の配列に分割し、数字列として扱えるようにします。
  • これにより、16進数文字列を16個の配列からなる数字列として表示することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

とりあえず、文字列を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 でも使えばいいと思う.

関連するQ&A

専門家に質問してみよう