Ifstream открывает файл, но не выводит строки внутри файла - PullRequest
0 голосов
/ 02 августа 2020

Я новичок в C ++, и я пытался открыть файл ".txt" с помощью ifstream. файл, который я использую, называется "ola.txt", который буквально содержит две строки текста без знаков препинания, простой и простой текст. Код, который я написал:

#include <iostream>

#include <vector>

#include <fstream>

#include <iomanip>

#include <string>

using namespace std;
 int main()
{
    int x;
    string line;
    vector<int> vect;

    ifstream inFile("C:\\Users\\ruial\\Desktop\\ola.txt");

    inFile.open("C:\\Users\\ruial\\Desktop\\ola.txt");
    if (inFile.is_open()) {
        while (getline(inFile, line))
        {
            cout << line << '\n';
        }
        inFile.close();
    }
    else {
        cout << "Unable to open file";
        exit(1); // terminate with error
    }

    return 0;
}

Путь к написанному мной файлу правильный, так что файл открывается, но когда программа запускается, она не отображает строки, которые я написал в текстовом файле. файл в cmd, я не знаю, насколько это важно, но я кодирую в Visual Studio 2019. Кажется, я не могу найти ответ на эту проблему где-нибудь в inte rnet, и, честно говоря, я думаю, что делаю это правильно , любая помощь будет принята с благодарностью, заранее спасибо.

1 Ответ

3 голосов
/ 02 августа 2020

Вы пытаетесь открыть inFile дважды. Первый раз во время построения inFile, ifstream inFile("C:\\Users\\ruial\\Desktop\\ola.txt"), второй раз вы пытаетесь открыть его снова с помощью inFile.open("C:\\Users\\ruial\\Desktop\\ola.txt"), когда он уже открыт , что является ошибочным и помечает поток как более не пригодный *. 1007 *

3 возможных исправления:

  1. Удалить inFile.open("C:\\Users\\ruial\\Desktop\\ola.txt")
  2. Использовать конструктор по умолчанию, без указания имени файла
  3. inFile.close() перед его открытием снова (очевидно, не самое лучшее исправление).
...