- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在程序顶部的声明中有#include(string),但是当我尝试运行 stoi(string) 或 stoll(string) 时,出现以下错误。我正在运行 Cygwin g++ v4.5.3。
Z:\G\CSCE 437>g++ convert.cpp -o conv convert.cpp: In function
void transfer(std::string*)':
stoll' was not declared in this scope convert.cpp:116:35: error: `stoi' was not declared in this scope
convert.cpp:103:36: error:
fileTime[numRec] = stoll(result[0]); //converts string to Long Long
if(numRec = 0){
beginningTime = fileTime[0];
}
fileTime[numRec] = timeDiff;
hostName[numRec] = result[1];
diskNum[numRec] = stoi(result[2]);
type[numRec] = result[3];
offset[numRec] = stoi(result[4]);
fileSize[numRec] = stoi(result[5]);
responseTime[numRec] = stoi(result[6]);`
其中 result 是一个字符串数组。
最佳答案
这些函数是 C++11 中的新函数,GCC 仅在您使用命令行选项 -std=c++11
指定该语言版本时才可用。 (或在某些旧版本上为 -std=c++0x
;我认为您将需要 4.5 版)。
如果由于某种原因您不能使用 C++11,您可以使用字符串流进行转换:
#include <sstream>
template <typename T> from_string(std::string const & s) {
std::stringstream ss(s);
T result;
ss >> result; // TODO handle errors
return result;
}
或者,如果您感到自虐,C 函数在诸如 strtoll
中在 <cstring>
中声明.
关于c++ - c++ 中的 stoi 和 stoll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14590410/
我正在使用 Visual Studio 2013,我正在尝试使用 stoll 将以十六进制格式表示负值的字符串 writen 转换为 long long,但我遇到了超出范围的异常。你知道为什么吗? 例
我在程序顶部的声明中有#include(string),但是当我尝试运行 stoi(string) 或 stoll(string) 时,出现以下错误。我正在运行 Cygwin g++ v4.5.3。
我很难将 std::stoll 打包到 std::function 中。天真 std::function obj = std::stoll; 失败,因为 std::stoll 是两个函数的重载(cpp
对于 stoll() 是否有替代方案,内置于 Windows 或兼容 Apache 许可证?对于 Visual Studio 2008。即使安装 windows 7 平台 SDK 也不会将 stoll
我是一名优秀的程序员,十分优秀!