2012-05-06 76 views
-2

我想制作一个C程序,它将被一些参数调用;每个参数将代表一个文件名,我想在它们中写入一些东西。C - 读取/写入形成一个动态名称的文件

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

对于C++有一些称为c_str(),但我没有设法在这里使用它。 任何提示如何处理它?

+0

[C - 读取命令行参数](http://stackoverflow.com/questions/5157337/c-reading-command-line-parameters) –

+0

(已修复您的格式:格式化代码的正确方法是要缩进它4个空格,你可以通过选择你的代码并按下标有'{}'') – huon

+0

的按钮来实现,那么问题是什么?添加一些错误检查代码,你不是很好吗? – ConfusedAboutCPP

回答

1

文件名正好是一个C字符串(以空字符结尾的数组),并且您已经回答了您自己的问题(您不需要像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); 
    } 
} 

或类似的东西。

+0

所以,问题是我试图写入argv [0];非常感谢 - 解决了问题 – NiCU