c - 从文件中读取位并将其存储到 C 中的 char 数组中

标签 c arrays file bit

我有一个大文本文件,每行包含 7000 个 512 位的条目,我想读取每一行并将其存储到一个字符数组中,以便我可以进行位操作。

有什么推荐且有效的方法吗?

最佳答案

我会加载整个文件,然后将指向内存中文件的每个 512 位 block 的指针。

但是,如果您想要更好的答案,则需要提供更多信息。

<小时/>
char **load_file(const char *filename) {
   size_t i, j, file_size;
   char *file_ptr;
   char **entries;
   FILE *fd;

   fd = fopen(filename, "r");

   fseek(fd, 0, SEEK_END);
   file_size = ftell(fd);
   rewind(fd);

   file_ptr = malloc(sizeof(char) * file_size);
   fread(file_ptr, file_size, 1, fd);

   fclose(fd);

   /* 64 + 1 because newline is a character */
   entries = malloc(sizeof(char *) * file_size/(64 + 1));
   for (i = j = 0; j < file_size; i++, j += 64 + 1) {
      entries[i] = &file_ptr[j];
   }

   return entries;
} 

关于c - 从文件中读取位并将其存储到 C 中的 char 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18191189/

相关文章:

c - 这部分代码在做什么?

c - 如果我们在链表中查找循环时改变慢指针和快指针的跳数会怎样?

ios - Swift 如何在 AnyObject 数组中查找对象

c - 如何解压 msgpack 文件?

linux - 如何编辑一个大文件

c - 函数和指针

c - c 和 java 中的输出 AES/ECB/PKCS7 不相同

python - 对 'N' 维 numpy 数组的操作

javascript - 收集所有数据属性?

java - 在java中播放音频文件