【发布时间】:2017-06-06 20:39:05
【问题描述】:
如何使用此函数读取文件?
#include <stdio.h>
char* read_from_file (const char* filename, size_t length)
{
//I have this so far
fp = fopen(filename,"r"); // read mode
if( fp == NULL )
{
perror("Error while opening the file.\n");
exit(EXIT_FAILURE);
}
/* what goes in here? */
return NULL;
}
我正在尝试执行以下准则:
它分配一个长度为+1的字符缓冲区。
它以只读模式打开文件 filename。当打开文件失败时,它会释放缓冲内存
它将长度字符读入缓冲区,在最后一个位置插入一个空字符 (\0),关闭文件并返回指向缓冲区的指针。当读取长度字符失败时,它会释放缓冲内存,关闭文件并返回NULL。
【问题讨论】:
-
那么,你使用哪个函数来分配内存(缓冲区是一块内存)?最好打开文件,只有文件打开成功才分配内存。当然,您还应该检查内存是否分配成功。您可以使用哪些函数来读取数据块?哪个函数用于释放内存?哪个函数用于关闭文件?这一切都非常简单。
-
这似乎是一个非常基本的事情。检查
malloc、fread和fclose