错误:二进制'>>' :没有找到哪个操作符采用类型' const char [1]的右手操作数并且在第一次输入后程序崩溃

时间:2015-03-02 03:37:00

标签: c++ c++11

这是一个简单的程序,需要2个数字,反转它们并打印它们的反向和。我有2个问题

  1. 如果我继续使用“cin>>”,则会出现错误“binary>>”:找不到带有'const char [1]类型的右手操作数的运算符(或者没有可接受的版本)
  2. 如果我使用“scanf_s()”而不是“cin>>”,那么在获取第一个数字后它会崩溃。

    int calculate_sum(string num){
    stack<char> mystack;
    int sum = 0;
    for (int i = 0; i < num.length(); i++){
        mystack.push(i);
    }
    
    while (!mystack.empty()){
        char c; int n;
        c = mystack.top();
        mystack.pop();
        n= (int)c;
        sum = sum + n;
    }
    
    int main(){
        cout << "Enter testcases:" << endl;
        int testcase=0;
        cin >> testcase;
        while (testcase--){
            string num1, num2;
            int rev_sum1, rev_sum2, final_sum;
            int sum = 0;
            cin >> num1 >> "" >> num2 ;
            //scanf_s("%s %s", num1, num2);
            rev_sum1 = calculate_sum(num1);
            rev_sum2 = calculate_sum(num2);
            final_sum = rev_sum1 + rev_sum2;
            cout << final_sum << endl;
        }
        return sum;
    }  
    

1 个答案:

答案 0 :(得分:1)

问题在于这一行:

cin >> num1 >> "" >> num2 ;

您无法将输入中的值存储到""中。我相信你想要的东西:

cin >> num1 >> num2 ;