Я пытаюсь написать программу, где я читаю текстовый файл, а затем беру каждую строку в текстовом файле и сохраняю их в строковом векторе. Я думаю, что я могу открыть текстовый файл, но я заметил, что после того, как я открою текстовый файл, ничего после этого момента не будет выполнено. Например, у меня есть оператор cout в конце моей основной функции, которая выводится, когда я ввожу имя файла, который не существует. Однако, если я ввожу имя файла, я не получаю никакого вывода из последнего оператора cout. Кто-нибудь знает, почему это? Благодаря!Почему мои инструкции cout не печатаются после открытия текстового файла?
int main()
{
vector<string>line;
string fileName = "test.txt";
ifstream myFile(fileName.c_str());
int i = 0;
int count = 0;
vector<string>lines;
cout << "test" << endl;
if (myFile.is_open())
{
cout << "test2" << endl;
while (!myFile.eof())
{
getline(myFile, lines[i],'\n');
i++;
}
myFile.close();
}
if (!myFile.is_open())
{
cout<< "File not open"<< endl;
}
myFile.close();
cout << "Test3" <<endl;
return 0;
}
'lines' - пустой вектор. 'lines [i]' недопустимо для любого значения 'i'. Ваша программа просто сработает. –
[why' while (! MyFile.eof()) 'is wrong] (http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – Barmar
Вы пишите из границ вектора с помощью 'lines [i]' –