Ifstream 正在打开文件,但不输出文件内的行

Ifstream is opening the file, but doesn't output the lines inside the file

我是 C++ 的新手,我试图使用 ifstream 打开一个“.txt”文件。我使用的文件名为“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;
}

我写的文件的路径是正确的,所以文件打开了,但是当程序运行时它没有计算出我在 txt 文件上写的行到 cmd,我不知道这是不是有点重要,但我在 visual studio 2019 年编码。 我似乎无法在互联网上的任何地方找到这个问题的答案,老实说,我认为我做得对,任何帮助将不胜感激,提前致谢。

您正在尝试打开 inFile 两次。第一次在 inFile 构建期间 ifstream inFile("C:\Users\ruial\Desktop\ola.txt"),第二次尝试用 inFile.open("C:\Users\ruial\Desktop\ola.txt") 再次打开它时,它 已经打开 ,这是错误的,并将流标记为不再有效。

3 个可能的修复:

  1. 删除inFile.open("C:\Users\ruial\Desktop\ola.txt")
  2. 使用默认构造函数,不指定文件名
  3. inFile.close() 在你再次打开它之前(显然,这不是最好的修复)。