【问题标题】:How can i read from a file in C我如何从C中的文件中读取
【发布时间】: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。

【问题讨论】:

  • 那么,你使用哪个函数来分配内存(缓冲区是一块内存)?最好打开文件,只有文件打开成功才分配内存。当然,您还应该检查内存是否分配成功。您可以使用哪些函数来读取数据块?哪个函数用于释放内存?哪个函数用于关闭文件?这一切都非常简单。
  • 这似乎是一个非常基本的事情。检查mallocfreadfclose

标签: c file io


【解决方案1】:

您的问题中几乎包含了答案:

  1. 分配一个大小为length+1的字符缓冲区。

  2. 以只读模式打开文件filename。如果打开文件失败,释放缓冲区并返回

  3. length字符读入缓冲区,在最后一个位置插入一个空字符(\0),关闭文件并返回一个指向缓冲区的指针。

  4. 如果读取length字符失败,释放缓冲内存,关闭文件,返回NULL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    相关资源
    最近更新 更多