我不明白为什么下面的代码返回 *end=='\0\'
?
bool isValue(const string &token,int &output_value) //czy string jest wartoscia
{
char *end = 0;
errno=0;
output_value = strtol(token.c_str(),&end,10); //converts string to int
if (errno!=0) return false;
return *end=='\0';
}
编辑:愚蠢的问题,但我不知道为什么会有
bool isValue(const string &token,int &output_value)
代替
bool isValue(string &token,int &output_value)
和
bool isValue(string token,int output_value)
最佳答案
建议使用 stringstream 会是错误的吗?
#include <sstream>
#include <string>
using namespace std;
bool isValue(const string &input, int &output)
{
stringstream ss;
ss << input;
return(ss >> output)
}
关于c++ - 在 C++ 中将字符串转换为 int 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12057632/