質問: val) printf("%ld のアドレスに値が見つかりました\n", ftell(fp)); } fclose(fp); return 0; } ``` で、このプログラム文をコマンドラインから次のように実行します。 apdc-135.c.exe aaa.txt 3 aaa.txtの中身は abcdefghijklmnopqrstu vwxyz 0123456789 です。予想では 33(らへん)のアドレスに値が見つかりました と、コマンドプロンプトに表示されると思ってたのですが1行空白があるだけで何も表示されません。 僕のやり方が間違っているのでしょうか?それともプログラム文がおかしいのでしょうか? 本の正誤表には該当するものはありませんでした。
回答: こんにちは。 aaa.txtの中身がASCIIコードだからです。 数値の3は、ASCIIコードでETXなので、aaa.txtには含まれていないようですね。 文字の`'3'`は10進数で`51`ですので、`apdc-135.c.exe aaa.txt 51`とすれば、`'3'`のファイル内オフセットが表示されると思います。