【发布时间】:2013-11-09 11:22:12
【问题描述】:
我在验证 REGISTER.txt 是否存在以用于函数中的输入时遇到问题(见下文)。我的理解是,如果文件不存在,那么文件将不会被打开并且文件流变量(inData)将为假。因此,我可以在 if/else 语句中使用该变量来验证它是否打开。但即使 REGISTER.txt 与我的 .cpp 文件位于同一目录中,我的代码仍然显示它没有打开。
事情就是这样。当我在 Dev-C++ 编译器中运行相同的代码时,它工作正常并且找到了文件。现在,我知道编译器是不同的,但我不明白是什么导致了这里的差异。我首选的 IDE 是 Xcode,所以我想学习如何在 Xcode 中对文件进行 I/O。
提前感谢您的帮助。
附:我的 Xcode 项目引用了该文件,所以它不像该项目与该文件没有连接。
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();
}
在我的 main() 函数中,我有以下代码向用户表明发生了错误:
if (error) {
//Function encountered error. Exits program
system("PAUSE");
return 99;
}
编辑 我花了 40 分钟试图弄清楚这个问题,15 分钟写了这个问题,在我发布它 5 分钟后,我取得了巨大的进步。你不喜欢吗?
我将完整目录放入文件中,就成功了。
但是,这并不理想。下一个问题是我如何避免这样做? Xcode 的默认目录是什么?
【问题讨论】:
标签: c++ xcode fstream ifstream dev-c++