首页 > 解决方案 > 为什么我无法使用此代码打开文本文件?

问题描述

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

但是,无论我阅读我的书多少次,我似乎都无法说出为什么我的文件仍然无法打开。我什至复制了其他人的有效代码,但我的仍然无法打开。有人请帮助我,我已经尝试了一切。

这是我的代码的一部分,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++

解决方案


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

#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打开它后的操作有关。


推荐阅读