在C++中使用ifstream打开文本文件时遇到问题

Having trouble opening a text file using ifstream in C++

本文关键字:文件 文本 遇到 问题 C++ ifstream      更新时间:2023-10-16

我正在开发一个文本处理器,它从文件中接收文本并将其插入Graph数据结构中。我制作了Graph,但文本处理器有问题。每当我执行代码时,它都会说我无法打开文件。当我执行代码时,我确保文本文件在同一目录中。以下是GraphTextProcessor类的代码:

#include <fstream>
#include <cstring>
#include <string>
#include "Graph.h"
class GraphTextProcessor {
    private:
        Graph* m_data;
    public:
        GraphTextProcessor();
        Graph* process(std::string filename);
};
GraphTextProcessor::GraphTextProcessor() {
}
Graph* GraphTextProcessor::process(std::string filename) {
    //process text file and insert into graph here
    std::string word;
    //opens file in read mode
    std::ifstream readFile;
    readFile.open(filename.c_str(), std::ios::in);
    if (readFile.is_open()) { //Not opening
        while (readFile >> word) {
            std::cout << word << std::endl;
        }
        // Closes open text file
        readFile.close();
    }
    else {
        std::cout << "Unable to open text file." << std::endl;
    }
    return NULL;
}

我只是想先从一个文件中读取,然后再真正尝试写入Graph。这是我在Main中运行的代码:

#include <iostream>
#include <string>
#include "GraphTextProcessor.h"
int main() {
    GraphTextProcessor *gp = new GraphTextProcessor();
    gp->process("hello.txt");
}

它打印"Unable to open text file"。有什么建议吗?

我自己运行了代码,它运行得很好。列出你的编程环境以及你遵循了哪些步骤。请把你的问题做得更详细,并准确地解释你是如何做到的。

请确保以下内容:

  1. 请尝试使用完整的路径名称;例如

ifstream in("C:/someDirectory/andSomeOtherDirectory/one.txt");

  1. 请尝试更改文件的拼写

例如:

"One.txt"

"ONE.txt"

  1. 您需要获得读取该文件的权限。尝试更改文件的权限。

  2. 尝试不同的编译器

  3. 此外,如果您使用异常处理(try、throw、catch)而不是if,否则将有助于查找错误。