freopen()在mac上不起作用

时间:2014-12-15 21:12:21

标签: c++ xcode macos

我正在尝试在mac os上使用freopen()运行代码, 但它不会在指定的文件中打印任何输出。 虽然,它在Windows上完美运行。 我正在使用X-Code Editor,输入和输出文件与cpp文件在同一路径中

#include <cstdio>
int main(){
    freopen("input.in","r",stdin);
    freopen("output.out","w",stdout);

    int x;
    scanf("%d",&x);
    printf("%d\n",x);

    return 0;
}

2 个答案:

答案 0 :(得分:4)

这是因为您的可执行文件的工作目录不是您拥有.cpp文件的目录。

您可以指向具有绝对路径的文件,例如。 /Users/omar/Documents/input.in

或从xcode设置更改工作目录(请参阅Change the working directory in Xcode

答案 1 :(得分:-1)

我亲自尝试更改工作目录,但仍然无法正常工作... 后来我发现,如果您使用Terminal编译c ++文件,根本不会有麻烦!

要使用Terminal编译c ++,请键入以下命令:

  1. cd yourFileDirectory
  2. g++ -o yourFileName yourFileName.cpp(这将编译您的代码)
  3. ./yourFileName(这将成功运行代码!)