通过char将.txt读入向量,但不能忽略空格

时间:2019-08-09 00:17:29

标签: c++ c++11 vector char whitespace

我让它从文件中读取并将其推入向量中,但是它似乎没有从message.txt中读取空格。我正在工作一个简单的程序,需要将文件存储为chars的向量,而不是字符串。 message.txt文件只是几个单词,没什么特别的。当我运行程序时,它只输出所有字符减去空格。谢谢

必须是存储在向量中的字符。

    vector<char> originalFile;      
    char c;
    fstream startFile1;
    startFile1.open("message.txt");

    if (startFile1.is_open())
    {
        cout << "File Opened";
    }
    else
    {
        cout << "File Not Opened";
    }

    while (startFile1 >> c)
    {
        originalFile.push_back(c);
    }

    for (int i = 0; i < originalFile.size(); i++)
    {
        cout << originalFile[i];
    }
    cout << originalFile.size();

1 个答案:

答案 0 :(得分:1)

如果您不希望进行任何文本处理,只需一次读取整个文件:

ifstream f("message.txt", ios::binary | ios::ate);
size_t size = static_cast<size_t>(f.tellg());
f.seekg(0, ios::beg);
vector<char> buffer(size);
if (f.read(buffer.data(), size))
{
    // buffer now contains entire file contents
}