Tengo un tipo de calculadora en C++ que debe aceptar argumentos cuando se ejecuta. Sin embargo, cuando ingreso 7 como argumento, puede llegar a ser 10354 cuando se coloca en una variable. Aquí está mi código:argumentos enteros para 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;
}
Siempre compile su código con las advertencias máximas habilitadas. '-Wall' cuando se usa gcc. Sospecho que el compilador le habría impedido cometer este error con una advertencia acerca de convertir un puntero a un número entero. –
@deft_code? Donde la conversión de puntero a entero? 'main' simplemente tiene la firma de tipo incorrecta. –
Para su información, la mayoría de los matemáticos requieren verificar el denominador para el cero antes de la división. Escuché que era ilegal. Creo que el término de programación es "Comportamiento indefinido". El programa generará una señal o excepción. Los mundos pueden desmoronarse. ¿Quién sabe? –