我正在尝试使用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;
}
答案 0 :(得分:2)
您告诉freopen
创建一个名为"argv[1]"
的文件,作为char*
(作为"字符串"如果您愿意的话)。要实际使用argv[1]
参数根据程序的第一个参数创建文件,请不要引用argv [1]:
freopen(argv[1], "w+", stdout);
答案 1 :(得分:1)
只需删除引号。
freopen(argv[1], "w+", stdout);