【C 语言】文件操作 ( 按照文本行的方式读写文件 | fgets 函数 | fputs 函数 )

2023-03-30 08:47:57 浏览数 (2)

文章目录

  • 一、fgets 函数
  • 二、fputs 函数
  • 三、按照文本行的方式写文件
  • 四、按照文本行的方式读文件

一、fgets 函数


fgets 函数 :FILE *stream 指针指向的文件中 , 读取一行文本数据 , 将其存储在 char *str 指针指向的内存空间 , 最多读取

n-1

个字符 ;

  • 如果读取的文本行字符个数小于
n-1

, 则读取一整行数据 ;

  • 如果读取的文本行字符个数大于
n-1

, 则读取

n-1

字节数据 ;

代码语言:javascript复制
#include <stdio.h>
char *fgets(char *str, int n, FILE *stream);

二、fputs 函数


fputs 函数 :const char *str 字符串写出到 FILE *stream 文件指向的文件中 ;

代码语言:javascript复制
#include <stdio.h>
int fputs(const char *str, FILE *stream);

三、按照文本行的方式写文件


代码示例 :

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

/**
 * @brief 主函数入口
 * @return
 */
int main(int argc, char* argv[], char**env)
{
    // 文件指针
    FILE *fp = NULL;

    // 文件路径
    char *filename = "D:/File/file.txt";

    // 循环控制变量
    int i = 0;

    // 以 读写 方式打开 文本文件
    // 文件必须存在 , 如果文件不存在则报错
    fp = fopen(filename, "w ");

    // 将一行字符串写出到文件中
    fputs(filename, fp);

    // 关闭文件
    fclose(fp);

    // 如果没有关闭文件 , 则需要等待文件执行完毕后 , 才能将内存缓存写出磁盘文件中

    // 命令行不要退出
    system("pause");
    return 0;
}

执行结果 :

四、按照文本行的方式读文件


代码示例 :

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

/**
 * @brief 主函数入口
 * @return
 */
int main(int argc, char* argv[], char**env)
{
    // 文件指针
    FILE *fp = NULL;

    // 文件路径
    char *filename = "D:/File/file.txt";

    // 接收字符串的数组
    char str[64];

    // 循环控制变量
    int i = 0;

    // 以 读写 方式打开 文本文件
    // 文件必须存在 , 如果文件不存在则报错
    fp = fopen(filename, "r ");

    while (!feof(fp))
    {
        // 从文件中读取一行数据
        char *p = fgets(str , 64, fp);

        if(p != NULL)
        {
            // 打印读取到的文本行
            printf("%sn", str);
        }
    }


    // 关闭文件
    fclose(fp);

    // 如果没有关闭文件 , 则需要等待文件执行完毕后 , 才能将内存缓存写出磁盘文件中

    // 命令行不要退出
    system("pause");
    return 0;
}

执行结果 :

0 人点赞