我试图打开一个文本文件,逐个字符读取文件,并将每个字符的ascii值存储到向量中。
我已成功打开和读取文件,但对于为什么整数值未存储在向量中感到困惑。所有值都存储为0。
听起来很傻,但是我不确定将char c强制转换为整数是否是问题,因此我将(int)c值存储到变量i中,然后再将其输入向量中。问题是,我知道我按预期存储了ASCII值,但是我无法弄清楚为什么这些值没有被传输到向量中。
char c;
std::vector<int> ascii;
while( inFile.get(c) )
{
std::cout << c;
ascii.push_back( (int) c );
}
inFile.close();
std::cout << std::endl;
for(auto& i : ascii)
{
std::cout << ascii[i] << " ";
}
odoylerules
0 0 0 0 0 0 0 0 0 0 0
答案 0 :(得分:5)
您正在使用range-for循环,因此i
是vector的整数,不是vector的索引:
for(auto& i : ascii)
{
std::cout << ascii[i] << " ";
}
应该是
for(auto& i : ascii)
{
std::cout << i << " ";
}