【问题标题】:Why can't I open a text file with this code?为什么我无法使用此代码打开文本文件?
【发布时间】:2019-05-01 03:09:32
【问题描述】:

我正在编写代码来打开用户输入的文件并显示该文件。

然而,无论我读了多少遍我的书,我似乎都无法 告诉我为什么我的文件仍然没有打开。我什至抄袭了别人的代码 那行得通,我的还是打不开。有人请帮助我我已经尝试过 一切。

这是我的代码的一部分,void 函数工作得很好,所以 进行输入验证,但是当我打开文件时没有显示任何内容

void readFile(int list[], int size)
{
//Identify variables
ifstream inFile;
string fileName;

    cout<<"Please enter filename: ";
    cin>>fileName;

    inFile.open(fileName.c_str());

    while(!inFile)
    {
        cout<<"Invalid file name. ";
        inFile.clear();
        inFile.ignore(200,'\n');
        cout<<"Please enter filename: ";
        cin>>fileName;
        inFile.open(fileName.c_str());
    }

由于某种原因,其他一切似乎都可以正常工作,但文件在打开时不会显示任何内容,而是程序关闭。

【问题讨论】:

    标签: c++


    【解决方案1】:

    这很奇怪:这段代码对我来说很好用。

    #include <cstdio>
    #include <cstring>
    #include <fstream>
    #include<iostream>
    using namespace std;
    
    int main ()
    {
        // Identify variables
        ifstream inFile;
        string fileName, str;
    
        cout << "Please enter filename: ";
        cin >> fileName;
    
        inFile.open(fileName.c_str());
    
        while(!inFile) {
            cout << "Invalid file name. ";
            inFile.clear();
            inFile.ignore(200,'\n');
            cout << "Please enter filename: ";
            cin >> fileName;
            inFile.open(fileName.c_str());
        }
    
        while (std::getline(inFile, str)) {
            cout << str;
        }
        cout << endl;
    
        return 0;
    }
    

    问题可能在于您打开 inFile 后所做的操作。

    【讨论】:

    • 所以你是说当你运行这个文件时,文件会打开?您指定的任何文本文件都可以打开吗?
    • 是的,没错,只要文件存在。否则,它会按预期执行,再次询问文件名。
    • 哦,我添加了 getline,终于成功了,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 2022-08-16
    • 2020-04-08
    相关资源
    最近更新 更多