这是我的代码
#include<iostream>//Per processor directive
#include<conio.h> //For getche()
using namespace std;
int main()
{
int no,no2,no3,no4;
cout<<"Enter no\n";
no=getche();
cout<<"+";
no2=getche();
no3=no+no2;
cout<<"\nAns "<<no3;
return 0;
}
//output
我的输出就是这个
Enter no
5+5
Ans is 106
为什么我得到106而不是10 任何帮助将不胜感激
答案 0 :(得分:0)
似乎getche()
已从您的输入中减去48。两个空格会产生结果-112,即((32 - 48) - 48) + ((32 - 48) - 48)
,所以你总是减去96太多。
您不需要getche()
,您的代码甚至在Visual C ++ 2013中没有警告就编译,并且因为您仍在使用iostream
和std::cout
,你为什么不继续std::cin
?
修改强>:
使用_getche()
代码可以正常运行。我不知道为什么。请使用std::cin
之类的内容,而getche()
已过时。
#include <iostream>
int main( )
{
int Input_1;
int Input_2;
int Result;
std::cout << "Your addition: \n";
std::cin >> Input_1;
std::cout << "+ \n";
std::cin >> Input_2;
Result = Input_1 + Input_2;
std::cout << "\n" << "Result: " << Result;
//Keep the window open
getchar( );
getchar( );
return 0;
}
答案 1 :(得分:0)
getche()用于接受一个字符作为输入。如果输入5,则ASCII值“5”为53,因此答案为106.