С++ построчное чтение из файла

компьютеры windows C++ файлы

Имеется следующая функция для считывания из файла его содержимого:

int ReadMap(string FilePath){

ifstream fin(FilePath.c_str());
if (!fin) {
cout<<"File error!"<<endl;
return 0;
}
char ch;
int j=0;
int i=0;
while (fin.get(ch)) {
if(fin.eof()) break;
i++;
if(ch=='\n')j++;
map[i][j]=ch;
//cout<<map[i][j];
}
fin.close();
return 1;
}

Проблема в том, что она, считав содержимое файла и записав его в массив, идет куда-то дальше в память, и в итоге программа вылетает с 'access violation reading location bla-bla-bla'. Что с этим делать, я не представляю

Примечание:
В названии вопроса ошибся. Все-же посимвольное

Примечание:
Сейчас попробую через getline

Примечание:
Внезапно, все заработало. Вот таким вот образом:

int ReadMap(string FilePath){

ifstream fin(FilePath.c_str());
if (!fin) {
cout<<"File error!"<<endl;
return 0;
}
string ch;
int i=0;
while (getline(fin,ch)) {
map[i]=ch;
i++;
cout<<map[i];
}
fin.close();
return 1;
}
Ответы:
А че ты такой беспонтовый способ чтения файла выбрал то?
(по одному символу---так до скончания века читать можно)


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.