首页 > 解决方案 > 在 C++ 中执行终端命令,并在执行时使用 C++ 文件从终端传递的参数

问题描述

什么是 C++ 中的以下 Python 代码的等价物?

import sys, os
#Example command
os.system(f"touch {sys.argv[1]}")

标签: c++python-3.xterminal

解决方案


一个接近的等价物可以是:

#include <cstdlib>
#include <iostream>
#include <string>

int main(int argc, char ** argv)
{
  if (argc == 2)
  {
    std::string cmd = std::string("touch ") + argv[1];

    std::system(cmd.c_str());
  }
  else 
    std::cerr << "Usage: " << argv[0] << " <file>" << std::endl;

  return 0;
}

我更喜欢检查 args 的数量,而不是希望它不仅仅是 1。

无论如何,也可以在不使用touchsystem或等效的情况下执行此操作,如果文件不存在,您的程序会创建文件,或者将其修改日期和时间设置为当前日期和时间


推荐阅读