【发布时间】:2020-07-14 06:54:09
【问题描述】:
面临错误,我正在尝试将 char 值转换为堆栈到 int,然后将它们平方。我尝试使用 atoi() 和 sscanf() 但我仍然面临这个错误
#include <stack>
#include<iostream>
#include<cmath>
#include<string>
#include <sstream>
using namespace std;
int main(){
int n;
std::cin>>n;
long long int num = n;
while(num != 1){
stack<char>s;
string strnum = to_string(num);
for(int i=0;i<strnum.size();i++){
s.push(strnum[i]);
}
num = 0;
while(!s.empty()){
int x=0;
//sscanf(s.top(),"%d",&x);
x = atoi(s.top());
num += (x*x);
std::cout << x << std::endl;
s.pop();
}
cout<<"num is : "<<num<<endl;
}
std::cout<<1;
}
【问题讨论】:
-
检查atoi manual。它需要什么类型的参数,你传递了什么?
标签: c++ data-structures stl stack