C 如何打开压缩包中文档的命令

标签 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;
}

最佳答案

文件* 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/

相关文章:

Javascript 基于多个级别以平面格式创建数组

c++ - 对象的动态数组 - 初始化方法之间的区别

c++ - 带新行的字符串仅在一行中保存在文件中

java - 如何在Java中将txt文件转换为数组,以便我可以单独处理每个数组

java - 从字符串中解析 double

c++ - 在容器中存储常量字符串文字

c - C 中的 EOF 不起作用

c - 矩阵乘法程序在运行时崩溃

C编程base64编码特殊字符

c++ - 在 C++ 中调用函数指针指向的函数的方法