私はコマンドライン入力を受け取り、[1]と[2]が数字である[1]と[2] 0ではありません)しかし、printf文字と数字の区別
if ((atof(argv[2]) == 0))
何らかの理由で文字と数字の両方を受け入れます。
私の現在のコードでは、0と文字を区別することはできません。これをどうやって解決するのですか?私は1週間前にコーディングを始めました。私のコードが面倒で、助けてくれればと言ってくれてありがとう、と申し訳ありません。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char * argv[])
{
if ((atof(argv[2]) == 0))
{
printf("invalid input - divide by zero not allowed\n");
return 0;
}
else if ((atof(argv[1])) && (atof(argv[2])))
{
float sum = 0;
sum = (atof(argv[1]))/(atof(argv[2]));
printf("%f\n", sum);
return 0;
}
else
printf("invalid input\n");
return 0;
}
「受け入れ」とはどういう意味ですか?手紙が入力されたら何をしたいですか? *あなたは何をしたいですか?入力行を読み込み、それを解析して数値であるかどうかを確認するには、コードを書いてそのようにしてください。 –
数値に変換する前に文字をテストします。入力が非数値のときに古代C言語関数が返すものは何でしょうか? – kfsone
'atof'に文字を入力すると' 0.000000'が返されます。 –