c-将文件内容转换为大字符串



我想一次完成文件的所有内容,并将其放入"大字符串"中。。我不想一行一行地写。有什么功能可以做到这一点吗?

我想要这样的东西:

int main(int argc, char *argv[]) {
    FILE *script;
        int i;
        char *code;
        if (argc > 1){
          for (i = 1; i < argc; i++){
            if ((script = fopen(argv[i], "r")) == NULL){
            perror(argv[i]);
            }else {
               code = malloc (sizeof(char)*sizeof(script));
               **HERE TAKE THE CONTENT AND PUT IN "CODE" IN ONE GO** 

             }
           }
         }
     printf("%s",code);
     fclose(script);
     free(codigo);
     exit(0);
}

这可能吗?

您也可以考虑使用

fseek(script, 0, SEEK_END); // position to the end of the file
size = ftell(script); // get the file size
fseek(script, 0, SEEK_SET); // rewind to the beginning of the file
code = malloc(sizeof(char)*(size+1));
if(code) { 
    fread(code, sizeof(char), size, script);
    code[size] = '';
}

带有一些额外的错误检查

是。阅读ftellstat来获取文件的大小,以了解您需要分配多少空间(您不能在FILE *上使用sizeof来获取这些信息,它不会按照您的想法进行操作),然后一次性阅读fread

使用stat()获取大小的示例代码:

#include <sys/stat.h>
off_t fsize(const char *fname) {
    struct stat st;
    if (stat(fname, &st) == 0)
        return st.st_size;
    return -1; 
}

相关内容

  • 没有找到相关文章

最新更新