【问题标题】:How can I run c++ program with .txt file as an arguement on mac terminal?如何在 mac 终端上以 .txt 文件作为参数运行 c++ 程序?
【发布时间】:2020-12-07 23:57:50
【问题描述】:

我正在尝试使用 txt 文件作为命令行参数运行 c++ 程序。我使用 chmod u+rwx 文件名更改访问权限,使用 g++ 进行编译,使用 ./ 运行。我不断收到一条错误消息,说“zsh:权限被拒绝:./ “。我可以使用 g++ 制作 unix 可执行文件,但是当我使用 ./ 和 txt 文件作为参数运行程序时,它会返回上面的错误消息。
我的终端是什么样子的

-Air ~ % cd /Users/klee/Desktop/pa3+ect/cs1/page-link            
-Air page-link % g++ page.cpp page_rank.cpp web.cpp -o rank1
-Air page-link % ./ rank1
zsh: permission denied: ./
-Air page-link %

【问题讨论】:

  • 你能编译并执行一个HelloWorld吗?
  • 这可能不是 C++ 问题。
  • 请包括您的命令到底是什么,以及确切的错误消息。 ./ 不应该做任何事情,也不应该引起任何问题。
  • 我可以执行hello world。如果我使用 g++ helloworld.cpp,它会创建可执行的 unix 字段,如果我点击它,它就会运行。但是,如果我尝试在终端上使用 ./ 运行它,它不会。这是我在终端上得到的。
  • -Air ~ % cd /Users/klee/Desktop/pa3+ect/cs1/page-link -Air page-link % g++ page.cpp page_rank.cpp web.cpp -o rank1 -Air page-link % ./ rank1 zsh: 权限被拒绝: ./ -Air page-link %

标签: c++ macos terminal g++


【解决方案1】:

您可以使用标准参数获取文件路径,然后将文件文本解析为变量。

int main(int argc, char** argv) 
{ 
cout << "You have entered " << argc 
     << " arguments:" << "\n"; 

for (int i = 0; i < argc; ++i) 
    cout << argv[i] << "\n"; 

return 0; 
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-27
    • 2020-07-31
    • 1970-01-01
    • 2020-08-09
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    相关资源
    最近更新 更多