私は実行時に引数を受け入れるべきC++の電卓を持っています。しかし、引数として7を入力すると、変数に入れると10354になることがあります。ここに私のコードです:C++の整数引数
#include "stdafx.h"
#include <iostream>
int main(int argc, int argv[])
{
using namespace std;
int a;
int b;
if(argc==3){
a=argv[1];
b=argv[2];
}
else{
cout << "Please enter a number:";
cin >> a;
cout << "Please enter another number:";
cin >> b;
}
cout << "Addition:" << a+b << endl;
cout << "Subtaction:" << a-b << endl;
cout << "Multiplycation:" << a*b << endl;
cout << "Division:" << static_cast<long double>(a)/b << endl;
system("pause");
return 0;
}
最大限の警告を有効にしてコードをコンパイルしてください。 gccを使うときは '-Wall'を使います。私は、コンパイラがポインタを整数に変換するという警告を表示してこのミスをしてしまうのを止めたと思う。 –
@deft_code?ポインタから整数への変換はどこですか? 'main'は間違った型のシグニチャを持っています。 –
FYI、ほとんどの数学者は除算の前に分母を0にチェックする必要があります。私はそれが違法だと聞いた。私はプログラミング用語が "未定義の動作"だと信じています。プログラムはシグナルまたは例外を生成します。世界は崩壊するかもしれない。知るか? –