下を実行して、数字を入力するとちゃんと動くのですが、文字を入力しても0になってしまうんです。
char型なので、文字もいけると思うのですが、何故動かないんでしょうか?
(ちなみに本にも文字列を入れると動かないとありました)
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char num_str[20];
int val;
printf("数字を入力してください ");
scanf("%19s", num_str);
val = atoi(num_str);
printf("入力文字列は %s で、数値は %d です \n",
num_str, val);
return 0;
}
atoi関数のこと
Re:atoi関数のこと
どのような実行結果を期待していますか?
文字は数値に変換できませんから0が返ってくるのは正常です。
例えば「a」と入力したら、何の数値に変換されることを期待しています?
文字が入力される可能性があり、エラー処理をする時は
http://www9.plala.or.jp/sgwr-t/lib/strtol.html
こちらの関数を使用して下さい。
文字は数値に変換できませんから0が返ってくるのは正常です。
例えば「a」と入力したら、何の数値に変換されることを期待しています?
文字が入力される可能性があり、エラー処理をする時は
http://www9.plala.or.jp/sgwr-t/lib/strtol.html
こちらの関数を使用して下さい。
Re:atoi関数のこと
すいません、情報不足でした。
「abc」と入れたらそれに対応する文字コードが出てくると思ったんです。
数字の場合は出て、説明文の中にアルファベットも対応して出てくる、という記述があったのですが、別の項目で「Hello」では出ないと書かれていて、わからなくなったんです。
という事は、数字の文字列のみ変換できるもので、アルファベットは出来ないものなんですか?
「abc」と入れたらそれに対応する文字コードが出てくると思ったんです。
数字の場合は出て、説明文の中にアルファベットも対応して出てくる、という記述があったのですが、別の項目で「Hello」では出ないと書かれていて、わからなくなったんです。
という事は、数字の文字列のみ変換できるもので、アルファベットは出来ないものなんですか?