Ich habe die ganzen ifstream-Fragen hier auf SO und ich habe immer noch Probleme beim Lesen einer einfachen Textdatei. Ich arbeite mit Visual Studio 2008.ifstream :: open funktioniert nicht im Debug-Modus von Visual Studio
Hier ist mein Code:
// CPPFileIO.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <fstream>
#include <conio.h>
#include <iostream>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
ifstream infile;
infile.open("input.txt", ifstream::in);
if (infile.is_open())
{
while (infile.good())
cout << (char) infile.get();
}
else
{
cout << "Unable to open file.";
}
infile.close();
_getch();
return 0;
}
ich bestätigt habe, dass die input.txt Datei im richtigen „Arbeitsverzeichnis“ wird durch den Wert von argv[0]
überprüfen. Die Open-Methode wird einfach nicht funktionieren.
Ich habe auch Probleme beim Debuggen - sollte ich nicht in der Lage sein, eine Uhr auf infile.good()
oder infile.is_open()
zu setzen? Ich erhalte
Error: member function not present.
EDIT: aktualisierte Codeliste mit vollständigem Code von CPP-Datei.
UPDATE: Die Datei war nicht im aktuellen Arbeitsverzeichnis. Dies ist das Verzeichnis, in dem sich die Projektdatei befindet. Es wurde dorthin verschoben und es funktioniert beim Debuggen in VS.NET.
Es ist das Arbeitsverzeichnis, das Ihr Problem ist. Wenn Sie es von der Befehlszeile ausführen, ist das Arbeitsverzeichnis offensichtlich. Wenn Sie es im Debugger ausführen, müssen Sie das Arbeitsverzeichnis explizit festlegen, andernfalls ist es nicht so offensichtlich (überprüfen Sie die Debugger-Optionen). –
Danke für das Posten des Update-Abschnitts. Es war eine Minute her, seit ich darüber nachdenken musste, wo sich das Arbeitsverzeichnis im Debug-Modus befindet. Rettete mir ein paar Minuten Kopf kratzen. –