C - 从具有动态名称的文件读取/写入

时间:2012-05-06 07:46:57

标签: c file-io

我想制作一个用一些参数调用的C程序;每个参数都代表一个文件名,我想在每个参数中写一些东西。

FILE * h0;    
h0 = fopen(argv[0],"w");    
char buffer[100] = "something here\n";    
fprintf(h0,buffer);    
fclose(h0);

对于C ++,有一些叫做c_str()的东西,但我没有设法在这里使用它。 任何提示如何处理它?<​​/ p>

2 个答案:

答案 0 :(得分:1)

文件名正好是一个C字符串(以null结尾的char数组),你已经回答了自己的问题(你不需要像C中的c_str那样),因为你打开文件并在其中写入。 argc告诉您命令行中有多少个参数,包含程序的名称,它位于argv[0]。所以你需要一个循环,比如

const char *your_stuff = "something here\n";
for(i = 1; i < argc; i++)
{
   FILE *h = fopen(argv[i], "w");
   if (h) {
     fputs(your_stuff, h);
     fclose(h);
   }
}

或类似的东西。

答案 1 :(得分:1)

您应该查看命令行参数的形成方式:

http://crasseux.com/books/ctutorial/argc-and-argv.html

然后查看您的argv[0]