C++ 我想从文件中读取数据块并将其存储在vector<;字符串>;缓冲器。我做错了什么?

C++ 我想从文件中读取数据块并将其存储在vector<;字符串>;缓冲器。我做错了什么?,c++,file-io,stdvector,C++,File Io,Stdvector,行file.read((char*)&buf,BUFFER\u SIZE)未在buf变量中存储任何数据:( 环路 vectorbuf; 读取((char*)&buf,缓冲区大小); 向量::迭代器iter=buf.begin(); 对于(;iter

file.read((char*)&buf,BUFFER\u SIZE)未在buf变量中存储任何数据:(

环路

vectorbuf;
读取((char*)&buf,缓冲区大小);
向量::迭代器iter=buf.begin();
对于(;iter
vector <string> buf;
vectorbuf;
分配时,它将创建一个std::string对象的内部数组。我猜您想要的是字符缓冲区,而不是字符串对象

写:

vector<char> buf;
buf.resize(BUFFER_SIZE);   <<< You need to allocate memory if you want to fill it in yourself
vectorbuf;
buf.resize(缓冲区大小);您正在寻找的


希望它可以帮助您解决您的问题。

file.read()需要一个字符*,如何从文件中读取缓冲区大小并将其存储在向量中?。我的向量可以是字符,而不一定是字符串。我只需要一个与缓冲区大小相等的数据缓冲区。谢谢,这解决了我的读取问题:)。如何打印buf的内容以验证其读取是否正确?–我尝试了(std::vector::iterator iter=buf.begin();iter!=buf.end();++iter)std::cout文件包含哪些内容?是否有可能换行符终止读取?是否
file.read()
返回您可以检查的任何结果代码?尝试使用C数组:
char buf[256];file.read(buf,256);printf(“%s\n”,buf)
这是否正确读取了文件?谢谢大家。我能够使用上述代码打印内容。最初没有显示数据,因为我使用ios::ate打开了我的文件。一旦我删除,程序将按预期工作。感谢大家的快速响应。您正在查找此[then][1]。希望它能帮助你。[1]:@DavidSchwartz:这是一个文本文件。我不确定:(.我正在使用Visual Studio2008@David施瓦茨:我的问题已全部解决,但我无法回答您的问题,因此添加了此评论。很抱歉,我不知道如何检查版本。但我发现C++11命令不可用/无法编译,所以我应该是C++98。@mp123您似乎不明白“type”这个词是什么意思意味着在C++环境下。这有点吓人。
vector <string> buf;
vector<char> buf;
buf.resize(BUFFER_SIZE);   <<< You need to allocate memory if you want to fill it in yourself
&buf[0];  <<< This is a pointer to internal buffer which is an array of chars.
file.read(&buf[0], BUFFER_SIZE) <<< Reads data into the buffer