这是一个简单的程序,需要2个数字,反转它们并打印它们的反向和。我有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;
}
答案 0 :(得分:1)
问题在于这一行:
cin >> num1 >> "" >> num2 ;
您无法将输入中的值存储到""
中。我相信你想要的东西:
cin >> num1 >> num2 ;