首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在c中将文本文件读入数组

在C语言中,将文本文件读入数组可以通过以下步骤实现:

  1. 打开文件
  2. 获取文件大小
  3. 创建缓冲区
  4. 读取文件内容到缓冲区
  5. 将缓冲区内容复制到数组中
  6. 关闭文件

以下是一个示例代码:

代码语言:c
复制
#include<stdio.h>
#include <stdlib.h>

int main() {
    FILE *file;
    size_t file_size, read_size;
    char *buffer;
    char *array;

    // 打开文件
    file = fopen("example.txt", "rb");
    if (file == NULL) {
        printf("无法打开文件\n");
        return 1;
    }

    // 获取文件大小
    fseek(file, 0, SEEK_END);
    file_size = ftell(file);
    fseek(file, 0, SEEK_SET);

    // 创建缓冲区
    buffer = (char *)malloc(file_size + 1);
    if (buffer == NULL) {
        printf("无法分配内存\n");
        fclose(file);
        return 1;
    }

    // 读取文件内容到缓冲区
    read_size = fread(buffer, 1, file_size, file);
    if (read_size != file_size) {
        printf("读取文件失败\n");
        free(buffer);
        fclose(file);
        return 1;
    }
    buffer[file_size] = '\0';

    // 将缓冲区内容复制到数组中
    array = (char *)malloc(file_size + 1);
    if (array == NULL) {
        printf("无法分配内存\n");
        free(buffer);
        fclose(file);
        return 1;
    }
    strcpy(array, buffer);

    // 关闭文件
    free(buffer);
    fclose(file);

    // 处理数组
    printf("数组内容:\n%s\n", array);
    free(array);

    return 0;
}

这个示例代码将名为“example.txt”的文件读入一个字符数组中,并输出数组内容。请注意,这个示例代码不会处理文件编码、换行符等问题,因此在实际使用中需要根据具体情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

c语言基础学习10_文件操作02

============================================================================= ============================================================================= 涉及到的知识点有: 六、stat函数 七、fread 和 fwrite函数 八、fopen的a模式说明 九、fopen的b模式说明 十、sftp传输文件时的说明 十一、fopen的其他模式简要说明 十二、实现二进制文件的拷贝 十三、fseek函数 十四、ftell函数 十五、fflush函数 十六、remove函数 和 rename函数 (文件删除函数和文件改名函数) 十七、通过fwrite将结构体保存到二进制文件中 课堂练习 ============================================================================= ============================================================================= 六、stat函数

01

C语言文件读写操作(详解)

文件是一段数据的集合,这些数据可以是有规则的,也可以是无序的集合。在stdio.h有一个非常重要的东西,文件指针,每个文件都会在内存中开辟一块空间,用于存放文件的相关信息,这些信息保存在一个结构体中: struct _iobuf { char *_ptr; //指向buffer中第一个未读的字节 int _cnt; //记录剩余的未读字节的个数 char *_base;//文件的缓冲 int _flag;//打开文件的属性 int _file;//获取文件描述 int _charbuf;//单字节的缓冲,即缓冲大小仅为1个字节 int _bufsiz;//记录这个缓冲大小 char *_tmpfname;//临时文件名 }; typedef struct _iobuf FILE; FILE是一个数据结构,用于访问一个流。每个流都会对应一个FILE结构体。

04
领券