【问题标题】:c create file in terminal using freopen and argv[1]c 在终端中使用 freopen 和 argv[1] 创建文件
【发布时间】:2014-03-15 08:09:59
【问题描述】:

我正在尝试在 Unix 中使用终端创建文件。我的代码如下。我知道 argv[1] 正在从终端屏幕获取数据,因此例如当我执行 ./a.out newfile.txt 时,argv[1] 的值为 newfile.txt

当我运行命令 ls 来检查我的目录时,该文件称为 argv[1]。我是否需要使用某种形式的指针才能成功完成我正在尝试的事情?

问候

int main (int argc, char* argv[])
{
  printf("File to create: %s \n", argv[1] );
  freopen("argv[1]", "w+", stdout);
  return 0;
}

【问题讨论】:

  • 别忘了检查freopen()的返回值,这样你就知道它是否成功了。

标签: c pointers terminal


【解决方案1】:

您告诉freopen 创建一个名为"argv[1]" 的文件,作为char*(如果您愿意,可以作为“字符串”)。要实际使用argv[1] 参数根据提供给程序的第一个参数创建文件,请不要引用 argv[1]:

  freopen(argv[1], "w+", stdout);

【讨论】:

    【解决方案2】:

    只需删除引号。

    freopen(argv[1], "w+", stdout);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 2019-03-14
      • 2018-05-21
      • 1970-01-01
      相关资源
      最近更新 更多