Can';t在Xcode 4 c+中打开文本文件资源+;工具? 我正在研究如何使用XCODEM 4调试C++项目。

Can';t在Xcode 4 c+中打开文本文件资源+;工具? 我正在研究如何使用XCODEM 4调试C++项目。,c++,resources,xcode4,fstream,C++,Resources,Xcode4,Fstream,我基本上复制粘贴了一个工作C++执行文件,当从终端编译时运行良好。 然而,我认为使用Xcode进行调试可能会很好。因此,我尝试将单个.cpp文件作为命令行工具迁移到Xcode中 我需要读入一个名为numbers.txt的文件(通过命令行参数提供),该文件位于我的项目目录中,然后输出到一个文件(我也将其名称指定为参数) 我遇到的问题是,作为命令行参数提供的文件无法打开 ifstream in; ofstream out; in.open(argv[1]); out.

<>我基本上复制粘贴了一个工作C++执行文件,当从终端编译时运行良好。 然而,我认为使用Xcode进行调试可能会很好。因此,我尝试将单个.cpp文件作为命令行工具迁移到Xcode中

我需要读入一个名为numbers.txt的文件(通过命令行参数提供),该文件位于我的项目目录中,然后输出到一个文件(我也将其名称指定为参数)

我遇到的问题是,作为命令行参数提供的文件无法打开

    ifstream in;
    ofstream out;
    in.open(argv[1]);
    out.open(argv[2]);
我已经检查以确保参数被正确地传递,并且命名正确。中的
ifstream提供了'numbers.txt',我想打开一个我已经拥有的文本文件

但是,当我检查以确保
ifstream
打开时:

    if(in.is_open() == false){
          cerr << "Unable to open input file" << endl;
          return 1;
    }
if(in.is_open()==false){

cerr由Xcode生成的可执行文件位于与项目不同的文件夹中。在传入文件名之前,如果没有绝对路径,将导致可执行文件在错误的位置查找,这就是为什么找不到该文件。一些可能的解决方案是将该文件作为生成过程的一部分(因此它最终与可执行文件位于同一目录中)或者通过其绝对路径传递要打开的文件。也有其他方法可以解决此问题,但希望这足以让您开始使用。

由Xcode生成的可执行文件位于与项目不同的文件夹中。在传递文件名时,如果没有绝对路径,则会导致可执行文件在文件夹中查找该文件错误的位置,这就是找不到该文件的原因。一些可能的解决方案是将该文件作为构建过程的一部分包含在内(因此它最终与可执行文件位于同一目录中)或者传递文件以按其绝对路径打开。也有其他方法来解决此问题,但希望这足以让您开始。

旧线程,但我现在遇到了相同的问题,而且很容易解决。只需在构建阶段复制文件即可。 以下是最终结果的屏幕截图(注意目的地、子路径和复选框):


旧线程,但我现在面临同样的问题,而且很容易解决。只需在构建阶段复制文件即可。 以下是最终结果的屏幕截图(注意目的地、子路径和复选框):


这是一个关于C++的问题,还是只是在磁盘上找到文件?代码看起来不错……我不太确定。当我从命令行中运行代码时,代码工作得很好。我在TXT文件中与可执行文件相同。我猜它与XCODER有关系。这是关于C++的问题,还是关于FIN的问题。磁盘上的g文件?代码看起来没问题…我不太确定。当我从命令行运行它时,代码运行得很好,它们与可执行文件位于同一目录中的.txt文件。我猜它与Xcode有关。我添加了一个构建阶段来复制我需要的两个文本文件。但我不确定应该将它们放在哪里。看起来像y选项为:“可执行文件”、“产品目录”、“资源”。我还需要指定子路径吗?@weezybizzle:你可以提供一个完全限定的路径名。你也可以做一个测试输出,输出到一个相对的位置,然后在该文件出现的任何地方,将文本文件放在那里。我读得越多,就越感到困惑。我似乎不知道可执行文件到底在哪里nds up。它是否在一个名为build的目录中?(在build位置,它显示build)或者它是一个捆绑包?我太迷路了,任何帮助都将不胜感激。@weezybizzle:实际上,你的可执行文件在哪里结束并不重要。重要的是工作目录。你可以通过我之前展示的测试来找出工作目录是什么。一些简单的东西,比如
FILE*f=fopen(“test.txt”);fprintf(f,“hi”);fclose(f);
无论test.txt出现在哪里,您都应该将文本文件放在哪里。我添加了一个构建阶段来复制所需的两个文本文件。但我不确定应该将它们放在哪里。可能的选项是:“可执行文件”、“产品目录”、“资源”。我还需要指定子路径吗?@weezybizzle:你可以提供一个完全限定的路径名。你也可以做一个测试输出,输出到一个相对的位置,然后在该文件出现的任何地方,将文本文件放在那里。我读得越多,就越感到困惑。我似乎不知道可执行文件到底在哪里nds up。它是否在一个名为build的目录中?(在build位置,它显示build)或者它是一个捆绑包?我太迷路了,任何帮助都将不胜感激。@weezybizzle:实际上,你的可执行文件在哪里结束并不重要。重要的是工作目录。你可以通过我之前展示的测试来找出工作目录是什么。一些简单的东西,比如
FILE*f=fopen(“test.txt”);fprintf(f,“hi”);fclose(f);
无论test.txt出现在哪里,您都应该将文本文件放在那里。