我正在处理一个文本处理器,它从文件中获取文本并将其插入到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;
}
我只是在尝试写入图表之前先尝试从文件中读取。这是我在Main中运行的代码:
#include <iostream>
#include <string>
#include "GraphTextProcessor.h"
int main() {
GraphTextProcessor *gp = new GraphTextProcessor();
gp->process("hello.txt");
}
打印"Unable to open text file"
。有什么建议吗?
答案 0 :(得分:0)
我自己运行代码并且工作正常。 列出您的编程环境以及您遵循的步骤。请更详细地说明您的问题并准确解释您尝试使其工作的内容。
请确保以下内容:
ifstream in("C:/someDirectory/andSomeOtherDirectory/one.txt");
例如:
"One.txt"
或
"ONE.txt"
您需要获得阅读该文件的权限。尝试更改文件的权限。
尝试不同的编译器
此外,如果您使用异常处理(try,throw,catch)而不是if,否则将有助于查找错误。