c语言如何读取文件中的字符串储存至数组

C语言如何读取文件中的字符串

在C语言中,我们可以使用标准库函数fopen()打开一个文件,然后使用fgetc()fgets()fread()等函数逐个字符地读取文件内容,这里我们主要介绍fgetc()fgets()fread()三种方法。

1、使用fgetc()函数读取单个字符

c语言如何读取文件中的字符串储存至数组

fgetc()函数是C语言中最简单的文件读取函数,它可以逐个字符地读取文件内容,下面是一个使用fgetc()函数的示例:

include <stdio.h>
int main() {
    FILE *file;
    char ch;
    file = fopen("example.txt", "r"); // 以只读模式打开文件
    if (file == NULL) {
        printf("无法打开文件
");
        return 1;
    }
    while ((ch = fgetc(file)) != EOF) { // 当读取到文件末尾时,fgetc()会返回EOF
        putchar(ch); // 将读取到的字符输出到屏幕上
    }
    fclose(file); // 关闭文件
    return 0;
}

2、使用fgets()函数读取一行字符串

c语言如何读取文件中的字符串储存至数组

fgets()函数可以一次性读取一行字符串,包括空格和换行符,下面是一个使用fgets()函数的示例:

include <stdio.h>
include <string.h>
int main() {
    FILE *file;
    char buffer[1024];
    char *line;
    int line_number = 0;
    file = fopen("example.txt", "r"); // 以只读模式打开文件
    if (file == NULL) {
        printf("无法打开文件
");
        return 1;
    }
    while ((line = fgets(buffer, sizeof(buffer), file)) != NULL) { // 当读取到文件末尾时,fgets()会返回NULL
        line_number++; // 记录已读取的行数
        printf("%d: %s", line_number, line); // 将读取到的行输出到屏幕上
    }
    fclose(file); // 关闭文件
    return 0;
}

3、使用fread()函数读取指定数量的字符

c语言如何读取文件中的字符串储存至数组

fread()函数可以一次性读取指定数量的字符,下面是一个使用fread()函数的示例:

include <stdio.h>
include <string.h>
int main() {
    FILE *file;
    char buffer[1024];
    int bytesRead;
    int line_number = 0;
    int max_lines = 100; // 每行最多包含100个字符(不包括换行符)
    int total_bytes = max_lines * sizeof(buffer); // 总字节数等于每行字符数乘以每个字符的字节数(假设每个字符占用1字节)
    file = fopen("example.txt", "r"); // 以只读模式打开文件
    if (file == NULL) {
        printf("无法打开文件
");
        return 1;
    }
    memset(buffer, '\0', sizeof(buffer)); // 将缓冲区清零,以便存储读取到的字符串
    while ((bytesRead = fread(buffer, sizeof(char), total_bytes, file)) > 0) { // 当读取到文件末尾时,fread()会返回0或负数(表示错误)
        line_number++; // 记录已读取的行数,注意要加1,因为最后一行可能没有换行符,所以需要特殊处理
        buffer[bytesRead] = '\0'; // 在缓冲区的末尾添加字符串结束符('\0')以表示字符串结束位置(不包括换行符)
        printf("%d: %s", line_number, buffer); // 将读取到的行输出到屏幕上,注意要加上字符串结束符('\0')以避免潜在的安全问题(如缓冲区溢出)
    }
    fclose(file); // 关闭文件(如果没有发生错误)或忽略错误(如果发生错误)并继续执行后续代码(例如使用errno设置错误标志)-> 这里我们选择关闭文件以释放资源并防止死锁等竞态条件) -> 如果发生错误,请确保在程序结束前正确处理错误(例如使用exit(EXIT_FAILURE)退出程序或调用abort()终止程序等) -> 注意:在某些情况下,您可能希望在发生错误时继续执行后续代码,例如在调试过程中或在不需要完全终止程序的情况下,在这种情况下,请确保在程序结束前正确处理错误。

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/271533.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-01-28 07:20
Next 2024-01-28 07:24

相关推荐

  • c语言程序结果有乱码如何解决呢

    在编程过程中,我们经常会遇到C语言程序的输出结果出现乱码的情况,这种情况可能是由于编码方式不正确或者输出设备不支持导致的,本文将详细介绍如何解决C语言程序结果有乱码的问题。1、了解字符编码在解决这个问题之前,我们需要了解字符编码的基本概念,字符编码是一种将字符(如字母、数字和符号)映射到计算机可以识别和处理的二进制数的方法,常见的字符……

    2024-01-06
    0295
  • 怎么使用c语言输出实心正方形

    在C语言中,输出实心正方形可以通过字符数组和循环语句来实现,下面将详细介绍如何使用C语言输出实心正方形。1、准备工作我们需要包含头文件stdio.h,该头文件包含了标准输入输出函数的声明,我们需要定义一个字符数组来存储正方形的字符表示。include &lt;stdio.h&gt;int main() { char s……

    2024-01-05
    0219
  • php浮点数转为字符串

    在PHP中,浮点型和整型是两种常见的数据类型,浮点型用于表示带有小数部分的数字,而整型则用于表示没有小数部分的整数,在某些情况下,我们可能需要将浮点型转换为整型,例如在进行数学运算时,或者在比较两个数字是否相等时,本文将介绍PHP中浮点型转换为整型的方法。1. 使用内置函数intval()PHP提供了内置函数intval(),可以将浮……

    2023-12-31
    0124
  • html怎么与c交互

    HTML(超文本标记语言)是一种用于创建网页的标准标记语言,而C语言是一种通用的、过程式的计算机编程语言,在实际应用中,我们可能需要让HTML与C语言进行交互,例如在服务器端处理用户请求时,需要使用C语言编写后端程序来生成动态的HTML页面,本文将介绍如何实现HTML与C的交互。1、CGI(通用网关接口)CGI是Web服务器与外部程序……

    2024-03-22
    0165
  • sql server 字符串函数

    在SQL SERVER2012中,新增了许多函数,其中字符串函数CONCAT是最常用的一个,CONCAT函数用于将两个或多个字符串连接成一个字符串,本文将对CONCAT函数进行详细的技术介绍。CONCAT函数的基本语法CONCAT函数的基本语法如下:CONCAT (string1, string2, ..., stringN)stri……

    2024-03-08
    0160
  • mysql sql字符串截取函数详解

    MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了许多内置的函数来处理字符串数据,SQL字符串截取函数是我们在处理字符串数据时经常用到的一种功能,本文将对MySQL中的字符串截取函数进行详细的介绍。1、SUBSTRING_INDEX()函数SUBSTRING_INDEX()函数用于从字符串中提取子字符串,它接受三个参数:原始……

    2024-03-02
    0185

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入