Tôi có một loại máy tính trong C++ nên chấp nhận đối số khi được thực thi. Tuy nhiên, khi tôi nhập 7 làm đối số, nó có thể xuất hiện là 10354 khi được đưa vào một biến. Đây là mã của tôi:đối số nguyên cho 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;
}
Luôn biên dịch mã của bạn khi bật cảnh báo tối đa. '-Wall' khi sử dụng gcc. Tôi nghi ngờ trình biên dịch có thể đã ngăn cản bạn làm sai lầm này với một cảnh báo về việc chuyển đổi một con trỏ thành một số nguyên. –
@deft_code? Trường hợp chuyển đổi từ con trỏ sang số nguyên? 'main' chỉ có chữ ký kiểu sai. –
FYI, hầu hết các nhà toán học yêu cầu kiểm tra mẫu số bằng 0 trước khi chia. Tôi nghe nói nó là bất hợp pháp. Tôi tin rằng thuật ngữ lập trình là "Hành vi không xác định". Chương trình sẽ tạo ra một tín hiệu hoặc ngoại lệ. Thế giới có thể sụp đổ. Ai biết? –