我想打开一个名为 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;
}
最佳答案
文件* 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);
}
关于C 如何打开压缩包中文档的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49419083/