我已经开始编写一个代码,该代码采用CSV文件并将找到的任何数字存储到矢量中。
除了将数字存储为读取而不是存储读取字符的ascii代码这一事实之外,它的效果很好。
例如,不是存储数字9而是存储数字57。
我已在下面显示了我的代码的相应部分:
std::vector< int > buffer;
if(isdigit(fileLine[inCol])){
buffer.push_back(fileLine[inCol]);
}
当我稍后使用std::cout
输出向量中的项时,我希望看到的值不是ascii代码。有人可以帮助我吗?
由于
答案 0 :(得分:1)
从'0'
减去转换为int
:
buffer.push_back(fileLine[inCol] - '0');
// ^^^^^
答案 1 :(得分:0)
它将数字存储为int,因为你说的时间是
矢量&lt; INT&GT; ....
如果你说
矢量&lt;炭&GT;
它会将它们存储为字符。
答案 2 :(得分:0)
我可以猜测fileLine
的类型为std::string
或者是一些char数组。在这种情况下,表达式的值
fileLine[inCol]
是相应字符的ASCII码。
你应该写
if(isdigit(fileLine[inCol])){
buffer.push_back(fileLine[inCol] - '0' );
}