Ich arbeite an einem Textprozessor, der Text aus einer Datei aufnimmt und in eine Graph-Datenstruktur einfügt. Ich habe den Graph erstellt, aber ich habe Probleme mit dem Textprozessor. Wann immer ich den Code ausführe, heißt es, dass ich die Datei nicht öffnen kann. Ich stellte sicher, dass die Textdatei im selben Verzeichnis war, als ich den Code ausführte. Hier ist der Code für die GraphTextProcessor Klasse:Probleme beim Öffnen einer Textdatei mit ifstream in C++
#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;
}
ich gerade versucht, von einer Datei zuerst zu lesen, bevor ich versuche tatsächlich auf die Grafik zu schreiben. Hier ist der Code, den ich in am Main läuft:
#include <iostream>
#include <string>
#include "GraphTextProcessor.h"
int main() {
GraphTextProcessor *gp = new GraphTextProcessor();
gp->process("hello.txt");
}
Er druckt "Unable to open text file"
. Irgendwelche Vorschläge?
Dies könnte helfen: [Wie Fehlermeldung erhalten, wenn ifstream nicht öffnen] (http://stackoverflow.com/a/17338934/669576) –
Sie könnte es nützlich finden Ihre '" Kann nicht öffnen müssen ... "' print 'filename' und das aktuelle Arbeitsverzeichnis, da wird nach der Datei gesucht. Wenn Sie Ihr Programm von einer IDE ausführen, ist es möglicherweise nicht dort, wo Sie es erwarten. –