文章目录
一、fgets 函数二、fputs 函数三、按照文本行的方式写文件四、按照文本行的方式读文件一、fgets 函数
fgets 函数 :从FILE *stream
指针指向的文件中 , 读取一行文本数据 , 将其存储在char *str
指针指向的内存空间 , 最多读取 n−1n-1n−1 个字符 ;
如果读取的文本行字符个数小于 n−1n-1n−1 , 则读取一整行数据 ;如果读取的文本行字符个数大于 n−1n-1n−1 , 则读取 n−1n-1n−1 字节数据 ;
#include <stdio.h>char *fgets(char *str, int n, FILE *stream);
二、fputs 函数
fputs 函数 :将const char *str
字符串写出到FILE *stream
文件指向的文件中 ;
#include <stdio.h>int fputs(const char *str, FILE *stream);
三、按照文本行的方式写文件
代码示例 :
#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;}
执行结果 :
四、按照文本行的方式读文件
代码示例 :
#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("%s\n", str);}}// 关闭文件fclose(fp);// 如果没有关闭文件 , 则需要等待文件执行完毕后 , 才能将内存缓存写出磁盘文件中// 命令行不要退出system("pause");return 0;}
执行结果 :