使用getche()时在输出中出错

时间:2016-03-14 07:56:28

标签: c++

这是我的代码

#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 任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

  1. 似乎getche()已从您的输入中减去48。两个空格会产生结果-112,即((32 - 48) - 48) + ((32 - 48) - 48),所以你总是减去96太多。

  2. 您不需要getche(),您的代码甚至在Visual C ++ 2013中没有警告就编译,并且因为您仍在使用iostreamstd::cout,你为什么不继续std::cin

  3. 修改: 使用_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.