我正在尝试按照this page中的示例将文本文件的内容读取到字符串对象。到目前为止,这就是我所拥有的:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
...
// char* filename is a given parameter
ifstream in (filename, ios::in|ios::ate);
if (in.is_open()) {
size_t filesize;
filesize = in.tellg();
string aux;
aux.reserve(filesize);
in.seekg(0);
while (!in.eof()) {
aux += in.get();
}
in.close();
// From here, I would use aux to process the contents of the file
} else {
// Couldn't open file
}
但是,我在调用aux.reserve(filesize)
时遇到了分段错误,因为我是C / C ++新手而且我还不太了解如何处理内存管理,所以我真的陷入困境。
为了记录,我知道一些Java,PHP和C#。我正在尝试阅读的文件长度为666,239(~650 KB)。我在Ubuntu 11.4中使用Code :: Blocks,默认情况下几乎都是,所以它使用的是g ++的最后一个稳定版本。在此先感谢您的帮助!