我的文件无法正常工作并从 C++ 文件中读取上下文 [关闭]

Posted

技术标签:

【中文标题】我的文件无法正常工作并从 C++ 文件中读取上下文 [关闭]【英文标题】:My file is not working and reading the context from the file in C++ [closed] 【发布时间】:2018-10-05 18:42:22 【问题描述】:

我试图打开某个文件并读取内容以将其放入一个名为 letters 的字符串中,但每次输入文件名时都会出现错误找不到打开文件。

void createTree()

BTS tree;
string filename;
string letters;
ifstream file;
int input = 0;

cout<<"Enter the file name:  ";     // ask the user to input the file name
cin >>filename; //input the user input into filename

file.open(filename.c_str());
if(file)

    cout<<"File is open";
    while(!file.eof())
    
        cout<< "In the while loop"<<endl;
        getline(file, letters);
        tree.insertWord(letters);
    


else
      cout<<"Error can't open the file"<<endl;
tree.printTree();

file.close();

【问题讨论】:

发布您的所有实际代码,而不仅仅是其中的一部分。 你的设置是什么?如果您在 IDE 中工作,可能是可执行文件在与您想象的不同的目录中运行。另外,请注意file.open(filename.c_str()); 中的c_str() 是不必要的,ifstream 完全了解std::string 【参考方案1】:

稍微更改了getline 调用,看看是否可行:

void createTree()

    BTS tree;
    string filename;
    string letters;
    ifstream file;
    int input = 0;

    cout<<"Enter the file name:  ";     // ask the user to input the file name
    cin >>filename; //input the user input into filename

    file.open(filename.c_str());
    if(file)
    
        cout<<"File is open" << endl;
        ifstream file(filename.c_str());
        char chars[100];

        while (!file.eof()) 
            file.getline(chars, 100);
            tree.insertWord(letters);
            letters = chars;
            cout << letters << endl;
        
     else 
        cout<<"Error can't open the file"<<endl;
    
    tree.printTree();

    file.close();

【讨论】:

它仍然无法正常工作......我认为问题是我的程序找不到文件可能是因为文件格式或文件的位置。如果我解决了问题,我会通知你们 我想出了什么问题!我只是在输入文件名时忘记输入文件格式(.txt)

以上是关于我的文件无法正常工作并从 C++ 文件中读取上下文 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C++ 从文本文件中逐字读取单词或逐字符读取单词

读取文件无法正常工作

C++ 主文件不显示所有内容

无法连接到 TFS 并从 C# 获取文件

将抽象数据类型保存和加载到 json 文件并从游戏中的文件中读取 Haskell

我想知道为什么我的搜索电话簿功能无法正常工作