Я пытаюсь открыть файл на С++, но, похоже, это доставляет мне немного хлопот, вот код, который до сих пор имеет дело с открытием файла:
void CreateHistogram(string str_file, vector<HistogramWord> &result) {
string line;
long location;
HistogramWord newWord;
const char * filename = str_file.c_str();
//ifstream myfile (str_file.c_str());
ifstream myfile (filename);
//myfile.open(filename);
if (myfile.is_open()) {
while (myfile.good()) {
getline(myfile, line);
line = clarifyWord(line);
Хорошо, просто для небольшого пояснения: HistogramWord — это структура, которая определена в заголовке, и из того, что я прочитал в онлайн-документации, имя файла должно быть типа const char *, что я и сделал. Преобразование str_file в const char *.
Теперь я пробовал несколько разных вещей, поэтому часть кода закомментирована. Когда он доходит до строки if (myfile.is_open()), он всегда оценивается как false. Кажется, кто-нибудь знает, почему?
Спасибо, Брэндон
myfile.open(filename);, и он все еще не хочет работать:/ - person Brandon   schedule 17.09.2011while (myfile.good()) {, она не входит в этот цикл. Есть ли другой способ прочитать содержимое файла без этого цикла? Это не кажется очень полным доказательством. - person Brandon   schedule 17.09.2011while (std::getline(...)), он возвращает istream, который перегружен, поэтому вы можете использовать его таким образом. (Кстати: я полагаю, вы имели в виду защиту от дурака?) - person Flexo   schedule 17.09.2011std::getline(), какие параметры он примет? - person Brandon   schedule 17.09.2011getline(myfile, line)как у вас, но как условие циклаwhile. - person Flexo   schedule 17.09.2011http://pastebin.com/Su76fNFC. - person Brandon   schedule 17.09.2011!myfile.eof(), но затем, используяgetline(myfile, line)в цикле,lineназначается"", что неверно в файле. - person Brandon   schedule 17.09.2011