读取和记录字符ASCII值到矢量

时间:2019-02-03 10:12:36

标签: c++

我试图打开一个文本文件,逐个字符读取文件,并将每个字符的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

1 个答案:

答案 0 :(得分:5)

您正在使用range-for循环,因此i是vector的整数,不是vector的索引:

for(auto& i : ascii)
    {
        std::cout << ascii[i] << " ";
    }

应该是

for(auto& i : ascii)
    {
        std::cout << i << " ";
    }