c - 试图在 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 函数,但每次尝试时,它都会以某种方式失败。
解决方案
这是一个如何执行此操作的简单示例:
#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;
}
我已将所有必要的错误处理留给您。
推荐阅读
- html - 向 Accordion bootstrap 4 添加多级下拉菜单?
- gradle - Gradle 任务不会在所有子项目中运行
- postgresql - 当 Postgres 中的 OTHERS THEN NULL 时的异常
- node.js - 我如何检查一个人是否在 discord.js 中上线、下线等?
- c# - Overpass API在c#中为多个请求返回空响应
- pine-script - Pine 无法确定系列的参考长度
- system-calls - 在 xv6 中创建新的系统调用,返回有关所有正在运行的进程的打开文件的数据
- python - 在 Flask 中构建 ML 模型时,如何预处理一些自变量和因变量?
- html - 活动时删除选择选项中的边框
- javascript - 单击表单提交按钮后,我想显示加载 gif