kun*_*l18 6 c++ string long-integer
我有一个变量:
string item;
Run Code Online (Sandbox Code Playgroud)
它在运行时初始化.我需要将它转换为long.怎么做?我已经尝试过atol()和strtol()但是我总是分别对strtol()和atol()有以下错误:
cannot convert 'std::string' to 'const char*' for argument '1' to 'long int strtol(const char*, char**, int)'
cannot convert 'std::string' to 'const char*' for argument '1' to 'long int atol(const char*)'
Run Code Online (Sandbox Code Playgroud)
log*_*og0 19
C++ 11:
long l = std::stol(item);
Run Code Online (Sandbox Code Playgroud)
http://en.cppreference.com/w/cpp/string/basic_string/stol
C++ 98:
char * pEnd;.
long l = std::strtol(item.c_str(),&pEnd,10);
Run Code Online (Sandbox Code Playgroud)
http://en.cppreference.com/w/cpp/string/byte/strtol
小智 16
试试这样:
long i = atol(item.c_str());
Run Code Online (Sandbox Code Playgroud)
使用字符串流.
#include <sstream>
// code...
std::string text;
std::stringstream buffer(text);
long var;
buffer >> var;
Run Code Online (Sandbox Code Playgroud)