-2

我想做一个 C 程序,用一些参数调用它;每个参数将代表一个文件名,我想在每个参数中写一些东西。

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

对于 C++,有一个叫做 c_str() 的东西,但我没有在这里使用它。任何提示如何处理它?

4

2 回答 2

1

文件名完全是一个 C 字符串(以空字符结尾的 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);
   }
}

或类似的东西。

于 2012-05-06T07:56:05.487 回答
1

你应该看看命令行参数是如何形成的:

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

然后看看你的argv[0].

于 2012-05-06T07:56:41.997 回答