ifstream Datei nicht öffnen
In dieser Funktion versuche ich, eine Datei zu öffnen, die enthält eine Reihe von Zeichen, die ich zuordnen will meine matrix-array, aber wenn ich dieses Programm ausführen, zeigt die Konsole eine Fehlermeldung, die besagt, dass die Datei nicht geöffnet ist. Eine andere Frage, wenn ich die Datei auf mein Ressourcen-Ordner wie kann ich festlegen für den Zugriff auf diese Datei und nicht die, die ich in den root meiner Festplatte?
ifstream readSecondMap("C:\\map_2.txt", ifstream::in);
void Stage::populateStage(ifstream &myStage, char (&myArray)[mapXcor][mapYcor]) {
if(myStage.is_open()){
for(int a = 0; a < mapXcor+1; ++a){
for(int b = 0; b < mapYcor+1; ++b){
myArray[a][b] = (char) myStage.get();
}
}
myStage.close();
} else {
std::cout << "Error: Unable to open File" <<std::endl;
}
}
Können Sie eine minimale, vollständig und kompilierbar Testfall, der das problem veranschaulicht?
Wenn dies windows vista oder höher, user access control ist wohl das Problem.
Stellen Sie sicher, C:\\map_2.txt vorhanden ist und das Programm darauf zugreifen können.Das zweite problem kann gelöst werden, indem Sie den relativen Pfad: eg: ../resource/map_2.txt
Verwenden Sie in visual studio im debug-Modus durch Zufall?
Haben Sie die richtigen Berechtigungen zum schreiben in das Verzeichnis.
Wenn dies windows vista oder höher, user access control ist wohl das Problem.
Stellen Sie sicher, C:\\map_2.txt vorhanden ist und das Programm darauf zugreifen können.Das zweite problem kann gelöst werden, indem Sie den relativen Pfad: eg: ../resource/map_2.txt
Verwenden Sie in visual studio im debug-Modus durch Zufall?
Haben Sie die richtigen Berechtigungen zum schreiben in das Verzeichnis.
InformationsquelleAutor Daniel Sega | 2013-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Genauso wie @TianyunLing beachten:
Getestet hab ich auf KUbuntu 12.10:
map_2.txt
nicht vorhanden, tritt der Fehler auf.für Ihre
program
Besuch Datei1, verwenden Sie"../folder1/file1"
Besuch"file3"
verwendenfile3
. (nehme an, dass Sie nicht ändern Sie Ihreprogram
working directory)Eine weitere Sache, die Sie nicht angeben müssen
ifstream::in
fürifstream
.InformationsquelleAutor gongzhitaao
Das Problem ist wahrscheinlich eine der folgenden:
1) map_2.txt existiert nicht in der von Ihnen festgelegten Stelle in Ihrem ifstream Erklärung.
2) Sie haben keine ausreichenden Rechte zum Zugriff auf das root Ordner von Ihrem Laufwerk "C".
Ich rate zum verschieben der Datei in den gleichen Ordner, dass Ihr code wird vorübergehend gespeichert und versucht, es zu erhalten, um mit zu arbeiten, die Lage zunächst zu verifizieren, dass das Problem mit Dateipfad oder Zugriffsrechte, statt etwas, das du tust in deinem code. Dann verschieben Sie es auf Ihrem Ressource-Ordner und einen relativen Pfadnamen verwenden, darauf zuzugreifen, wenn es funktioniert. Wenn es nicht funktioniert, wenn die Datei im gleichen Ordner wie dein code, und wenn Sie den Pfadnamen korrekt geschrieben sind, dann sind Sie wahrscheinlich etwas falsch in Ihrem code und würde post müssen einen größeren Teil des Codes machen, dass das Problem an uns.
InformationsquelleAutor 2to1mux