• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語:四則演算プログラムで、数字以外の文字が入力された場合のエラー処理について)

C言語:四則演算プログラムで、数字以外の文字が入力された場合のエラー処理について

このQ&Aのポイント
  • C言語の四則演算プログラムで、数字以外の文字が入力された場合のエラー処理について悩んでいます。
  • 現在、実行ファイル名と数式をコマンドライン引数として受け取り、数字以外の文字が入るとエラーとしたいですが、適切な方法がわかりません。
  • 現在のコードではatoi関数を使って数字を抽出し、それ以外の文字が入ると0が返されるため、エラー処理がうまくいきません。どのような方法でエラー処理を行えばよいでしょうか?

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

atoi を使っているなら整数ということだから -で始まっているか 0~9だけで構成されているというチェックをすればいいと思います。 あるいは、 strtol を使って変換がうまくいったかどうか調べる

yamiyu
質問者

お礼

べたなやり方ですが、switch文を使って 「0~9だけで構成されているというチェック」(先頭部分は'-'でもok) を書いてみた所、何とか上手く行きました。 switch文などを使わなくてももっといい方法があるのでしょうけれど、 「0~9だけで構成されているかチェック」という考え方は 本当に勉強になりました。 ご回答、ありがとうございました(^-^

yamiyu
質問者

補足

早速の回答、ありがとうございます。 >0~9だけで構成されているというチェック argv[1]配列の中身を見た時に、 全ての要素が、文字としての「'0'」~「'9'」だけで構成されているかどうかをチェックする、 ということでしょうか、、、 (全然違っていたら申し訳ありません) strtol関数というものもあるのですね。 一度こちらを使ってみようと思います。ありがとうございます。

関連するQ&A