• 締切済み

C言語の整数の判別

最近C言語の勉強を始めたのですが、 C言語で、整数だけの入力を許可してそれ以外(文字等)が入力された場合は整数を入力して下さいというメッセージにとばすプログラムを作りたいのですがどうも作り方が良く分からず困っています、いったいどのように作れば良いでしょうか?? 宜しくお願いいたします!

みんなの回答

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

int ans; char str[256],*p; (略) ans=(int)strtol(str,&p,10); if (*p != '\0') { エラー } 「123」「-456」「0」はOK 「abc」「123abc」「abc123」はNG

ccmugi
質問者

お礼

お答え有難うございます! なるほどstrtol関数を使えば良いんですね! 以外と整数だけの入力を許可してそれ以外はエラーに飛ばすという処理は難しいものですね、文字列を整数に変換したりするのは同じ関数でも簡単に扱えるのですが、整数のみ許可するという処理がいくら考えても分からなかったものでとても参考になりました。 有難うございます^^

すると、全ての回答が全文表示されます。
回答No.1

整数以外が入力された場合「飛ばす」とありますが、 それよりも「整数が入力されない限り繰り返す」 という処理を行った方がいいかも知れませんが。。。

ccmugi
質問者

お礼

有難うございます! では、 >>「整数が入力されない限り繰り返す」 場合の処理はどのようにすれば宜しいのでしょうか??

すると、全ての回答が全文表示されます。