c-在Xcode中使用fstream遇到麻烦

我在验证REGISTER.txt是否存在以用于输入目的(在函数中)时遇到麻烦.我的理解是,如果文件不存在,则将不会打开该文件,并且文件流变量(inData)将为false.因此,我可以在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的默认目录是什么?

解决方法:

REGISTER.txt is in the same directory as my .cpp file

REGISTER.txt需要与二进制文件位于同一目录(构建/发布或其他位置,具体取决于您的构建设置)

上一篇:蓝牙耳机连接电脑后没有声音,chrome浏览器设置问题


下一篇:Chrome 浏览器播放视频开启关闭硬件解码