首页 > 解决方案 > 试图在 C 编程中调用文本文件并将文本文件复制到我的新变量中

问题描述

我的文本文件是“Foo bar!!”,名称为 foo.txt

所以我想在我的主函数中创建一个新变量并将文本文件复制到新变量中。

#include <stdio.h>
#include <stdlib.h>

FILE *fopen_with_error (const char *f, const char *mode){
    FILE *fp;
    if((fp = fopen(f,mode)) == NULL){
        printf("Error opening %s\n",f);
        exit(EXIT_FAILURE);
    }
    return fp;
}

int main(int argc, char* argv[]){

    FILE *fp;
    int a, num;
    if(argc != 2){
        printf("Usage: program input file\n");
        return 0;
    }
    fp = fopen_with_error(argv[1],"rb");
}

我想将复制的文本存储到“a”变量中。

我尝试使用 fread 函数,但每次尝试时,它都会以某种方式失败。

标签: c

解决方案


这是一个如何执行此操作的简单示例:

#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
int main(int argc, char **argv) {
    char *fname = "./someFileNameHere";
    struct stat st;
    stat(fname, &st);
    char *content = malloc(st.st_size+1);
    content[st.st_size] = 0;
    FILE *infile = fopen(fname, "rb");
    size_t read = fread(content, sizeof(char), st.st_size, infile);
    fclose(infile);
    puts(content);
    return 0;
}

我已将所有必要的错误处理留给您。


推荐阅读