C如何在档案中打开已删除文档的命令

时间:2018-03-22 01:26:30

标签: c arrays string

我想打开一个名为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;
}

1 个答案:

答案 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);
    }
相关问题