存储int的传染媒介作为ascii代码

时间:2014-07-07 19:40:51

标签: c++ csv vector ascii

我已经开始编写一个代码,该代码采用CSV文件并将找到的任何数字存储到矢量中。

除了将数字存储为读取而不是存储读取字符的ascii代码这一事实之外,它的效果很好。

例如,不是存储数字9而是存储数字57。

我已在下面显示了我的代码的相应部分:

std::vector< int > buffer;

if(isdigit(fileLine[inCol])){
    buffer.push_back(fileLine[inCol]);
}

当我稍后使用std::cout输出向量中的项时,我希望看到的值不是ascii代码。有人可以帮助我吗?

由于

3 个答案:

答案 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' );
}