我想打开一个名为btc.csv的档案,但我的命令只是“btc”。 如何将参数转换为整个名称?
命令
main.c btc
int main(int argc,char *argv[]){
FILE *csv;
for(int i=1; i< argc; i++)
{
sprintf(csv, "%s.csv", argv[i]);
}
if((csv=fopen(argv[1], "r")) == NULL )
{
printf("not found csv\n");
exit(1);
}
fclose(csv);
return 0;
}
答案 0 :(得分:0)
FILE* csv; sprintf(csv...
?没有。编译所有警告标志着这是一个问题。
你走在正确的轨道上。您需要一个字符串来保存修改后的文件名,然后将该字符串传递给fopen()
int main(int argc,char *argv[]){
FILE *csv;
// TODO Use something other than a fixed size or at least make sure
// that the size is enough to handle all filenames.
//
char filename[64];
sprintf(filename, "%s.csv", argv[1]); // TODO something more secure than sprintf?
if((csv=fopen(filename, "r")) == NULL )
{
printf("not found %s\n", filename);
exit(1);
}