可能重复:
以C语言获取文件内容的最简单方法
我的程序读取跨越多行的文件.我想将文件的内容保存在一个字符串中.
在执行之前我不知道文件的行数,但是我已经将行大小修改为MAX_LINE_LEN.
你怎么能这样做?
Den*_*nis 27
该功能fread()不关心换行符.以下代码读取内容input_file_name并将其保存到数组中file_contents:
char *file_contents;
long input_file_size;
FILE *input_file = fopen(input_file_name, "rb");
fseek(input_file, 0, SEEK_END);
input_file_size = ftell(input_file);
rewind(input_file);
file_contents = malloc(input_file_size * (sizeof(char)));
fread(file_contents, sizeof(char), input_file_size, input_file);
fclose(input_file);
Run Code Online (Sandbox Code Playgroud)
如果input_file_name包含该\0字符,则只能创建此数组的字符串.如果没有,请将最后三行更改为:
file_contents = malloc((input_file_size + 1) * (sizeof(char)));
fread(file_contents, sizeof(char), input_file_size, input_file);
fclose(input_file);
file_contents[input_file_size] = 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28376 次 |
| 最近记录: |