c++ - 在 C++ 中将字符串转换为 int 的问题

标签 c++ string

我不明白为什么下面的代码返回 *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/

相关文章:

c++ - Eclipse 中的新 .h 文件产生一个#define 常量

c# - 如何将 C++/CX 结构传递给纯 C++ 方法?

mysql - 字符串分类策略

C++类成员和内存位置

c++ - 在编译时求和嵌套模板参数

C++ 如何检查多输入语句的第一个输入?

sql - PostgreSQL ERROR 列不存在指的是列值

Javascript 正则表达式 : replacing $1 with f($1)

c++ - 打印较大的字符串 C++ 时出现问题

c - strpbrk 的行为不符合预期