Problemy z fstream w Xcode
Mam problem z weryfikacją istnienia REGISTER.txt dla celów wejściowych w funkcji (patrz poniżej). Rozumiem, że jeśli plik nie istnieje, plik nie zostanie otwarty, a zmienna strumienia plików (inData) będzie fałszywa. Dlatego mogę użyć tej zmiennej w instrukcji if / else, aby sprawdzić, czy została otwarta. Ale nawet jeśli REGISTER.txt znajduje się w tym samym katalogu, co mój plik .cpp, mój kod nadal mówi, że nie został otwarty.
Oto rzecz. Kiedy uruchamiam ten sam dokładny kod w kompilatorze Dev-C ++, działa on poprawnie i plik zostaje znaleziony. Teraz rozumiem, że kompilatory są różne, ale nie rozumiem, co powoduje rozbieżność tutaj. Moje preferowane IDE to Xcode, więc chciałbym dowiedzieć się, jak zrobić I / O z plikami w Xcode.
Z góry dziękuję za pomoc.
P.S. Mój projekt Xcode odwołuje się do pliku, więc nie jest on podobny do projektu.
void ReadVehicleRegInfo(char& vehicleType, string& licensePlate,
int& modelYear, float& origTaxValue, bool& error)
{
ifstream inData;
string inputFile = "REGISTER.txt";
inData.open(inputFile.c_str()); //File contains registration info
if (!inData) {
//File does not exist. Exit function
cout << inputFile << " does not exist. Program will now terminate"
<< endl << endl;
error = true;
return;
} else {
//File exists - continue with program
cout << inputFile << " found";
}
inData.close();
}
W mojej funkcji main () mam następujący kod sygnalizujący użytkownikowi, że wystąpił błąd:
if (error) {
//Function encountered error. Exits program
system("PAUSE");
return 99;
}
EDYTOWAĆ Spędziłem 40 minut, próbując to rozgryźć, 15 pisząc pytanie, a 5 minut po tym, jak to napisałem, robię ogromny postęp. Nie kochasz tego?
Włożyłem pełny katalog do pliku i to załatwiło sprawę.
Nie jest to jednak idealne. Następne pytanie brzmi: w jaki sposób uniknąć tego? Jaki jest domyślny katalog Xcode?