В файле с именем abc.txt, у меня есть ввод следующий текст:C++ вектор subsctript из диапазона
sample text
sample text
sample text
sample text
sample text
Во-первых, я создал переменную (названный текст) для сохранения text- чтения из файла. Затем программа считывает файл abc.txt. Я создал вектор с именем: ArrSent для сохранения каждой строки из файла abc.txt. После цикла while завершает программу закрыть файл abc.txt. Затем программа должна выводить все предложения из векторного ArrSent в screnn.I есть такая проблема: после завершения программы появляется предупреждение с сообщением: векторный индекс вне диапазона. Я понятия не имею, почему ..
#include<iostream>
#include<string>
#include<fstream>
#include<vector>
using namespace std;
void function()
{
string text;//variable to save text from file
ifstream myfile("abc.txt");//reading from file colled abc.txt
vector<string> ArrSent;
if (myfile.is_open())
{
//cout <<"myplik.good()= "<< myfile.good() << endl;
while (myfile.good())
{
getline(myfile, text);
ArrSent.push_back(text);
}
myfile.close();
}
for (int i = 0; i <= ArrSent.size(); i++)
{
cout << ArrSent[i] << endl;
}
}
int main()
{
function();
system("pause");
return 0;
}
'is_open()' и 'good()' абсолютно бессмысленны, а 'push_back' после вашего' getline' ошибочен, так как вы игнорируете возвращаемое значение. –
Пожалуйста, избавитесь от [system ("pause")] (http://www.gidnetwork.com/b-61.html) - это опасно и не переносится. –