Я пытаюсь прочитать содержимое текстового файла в строковый объект, следуя примеру на этой странице .Пока что это то, что у меня есть:
#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 КБ).Я использую Code :: Blocks в Ubuntu 11.4, почти все по умолчанию, поэтому он использует последнюю стабильную версию g ++.Заранее спасибо за помощь!