Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为c+;加载文件+;在mac上 我试图用iFix流用C++加载我的文件,但是它不起作用。我在Mac上使用Atom和Xcode作为编译器_C++ - Fatal编程技术网

如何为c+;加载文件+;在mac上 我试图用iFix流用C++加载我的文件,但是它不起作用。我在Mac上使用Atom和Xcode作为编译器

如何为c+;加载文件+;在mac上 我试图用iFix流用C++加载我的文件,但是它不起作用。我在Mac上使用Atom和Xcode作为编译器,c++,C++,这会弹出: #包括 #包括 #包括 int main(){ std::ifstream-infle; infle.open(“numbers.txt”); 如果(!infle.is_open()){ std::cout我认为,Xcode在不同的目录中生成.o(对象文件)文件,而您的.txt存在于不同的目录中。我在Xcode中编码,它总是在不同的目录中生成.o文件。读取和(或您机器上的任何调试器) 编译你的程序(即C++文件,让它命名为“代码> JOS.cc/,在你的问题中显示”),并在所有命令和

这会弹出:

#包括
#包括
#包括
int main(){
std::ifstream-infle;
infle.open(“numbers.txt”);
如果(!infle.is_open()){

std::cout我认为,Xcode在不同的目录中生成.o(对象文件)文件,而您的.txt存在于不同的目录中。我在Xcode中编码,它总是在不同的目录中生成.o文件。

读取和(或您机器上的任何调试器)

编译你的程序(即C++文件,让它命名为“代码> JOS.cc/<代码>,在你的问题中显示”),并在所有命令和调试信息中进行编译。我建议在命令行上用<代码> G++WALT-WOSU-G JOH.CC -O JoSHPROG < /COD>编译(详细阅读)然后用gdb./joshprog

调试它,并在终端中作为
/joshprog
运行它

关键是,您的IDE(Atom+XCode)对您没有帮助。它隐藏了重要的细节(请参阅答案,它也适用于MacOSX或其他Unix系统)。这就是为什么我强烈建议您使用显式代码编译(以及运行和调试)您的代码,以供您使用和理解(因此,请阅读您正在使用的每个命令的文档)。一旦您熟练地在Unix系统上进行编译,您最终可能会切换到IDE(但您需要了解IDE代表您在做什么,以及它正在运行哪些命令)

您可以通过使用(在POSIX系统上需要
#include
)在代码中添加一些显示当前的内容,例如

char mycwdbuf[80];
memset (mycwdbuf, 0, sizeof(mycwdbuf));
if (getcwd(mycwdbuf, sizeof(mycwdbuf)-1) != NULL)
   std::cout << "current directory is " << mycwdbuf << std::endl;
char mycwdbuf[80];
memset(mycwdbuf,0,sizeof(mycwdbuf));
if(getcwd(mycwdbuf,sizeof(mycwdbuf)-1)!=NULL)

std::您是否在文件所在的目录下运行可执行文件?假设您具有所需的读取权限,您可以使用绝对路径或确保当前目录包含所需的文件。如果您具有对该目录的写入权限,ofstream将在该目录下生成一个文件。@StoryTeller是的,我正在运行我的.cpp文件与.txt文件位于同一文件夹中。您所说的“不工作”是什么意思?我们需要一个我仍然不明白为什么不告诉学生在命令行上编译。IDE总是让他们感到困惑。但这不是OP的错。我应该把我的.txt文件移到哪里?我似乎找不到它。一个简单的方法是,通过终端编译你的程序,它会在同一目录中创建对象文件。
#include <iostream>
#include <fstream>
#include <cstdlib>

int main(){
  std::ifstream infile;
  infile.open("numbers.txt");
  if(!infile.is_open()){
    std::cout<<"file was not opened correctly"<<std::endl;
    exit(EXIT_FAILURE);
  }
  int n;
  while(infile>>n){
    std::cout<<n<<std::endl;
  }
  return 0;
}
char mycwdbuf[80];
memset (mycwdbuf, 0, sizeof(mycwdbuf));
if (getcwd(mycwdbuf, sizeof(mycwdbuf)-1) != NULL)
   std::cout << "current directory is " << mycwdbuf << std::endl;