文件只读和读取方式
一、文件读取 -fgetc
// Created by zjc on 2024/3/29 17:56
#include <stdio.h>
#include <stdbool.h>
#include<string.h>
/*
* #include <stdbool.h> 可以使用bool 类型,例如用在
* EOF文件的结束标记,读取字符的时候,可以判断是否读完了
* fgetc 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
* feof()函数检查给定的文件流是否已到达文件末尾。如果已到达文件末尾,则返回非零值(通常是1);否则,返回0。
* perror() 是一个在 C 语言中用于输出错误信息的函数
*/
void fileRead() {
char ch;
// 以指定的模式打开文件
FILE *fp = fopen("write01.txt", "r");
// 判断文件是否为空
if (fp == NULL) {
// 如果打开失败,将失败显示的内容输出
perror("open file failed reason:");
return;
}
while (!feof(fp)) {
// 读取文件:
// 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。
ch = fgetc(fp);
printf("%c", ch);
// 这里也可以使用feof(fp);
// feof()函数检查给定的文件流是否已到达文件末尾。
// 如果已到达文件末尾,则返回非零值(通常是1);否则,返回0。
//if (ch == EOF) {
// if(feof(fp)){,或者也可以放在循环条件判断,将这里if语句直接进注释
// break;
//}
}
// 关闭文件
fclose(fp);
}
int main() {
fileRead();
}
二、文件写入-fputc
void fileWrite() {
/*
* fputc 是 C 语言中用于将单个字符写入文件的函数。
* "w"打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。
在这里,您的程序会从文件的开头写入内容。如果文件存在,则该会被截断为
零长度,重新写入!!!。
*/
char str[] = "My name is zjc";
char ch;
FILE *fp = fopen("write01.txt", "w");
if (fp == NULL) {
perror("file open falied:");
return;
}
// 写文件
for (int i = 0; i < strlen(str); i++) {
// 通过遍历字符串进行一个写入文件
ch = fputc(str[i], fp);
printf("%c", ch);
}
fclose(fp);
}
int main() {
fileWrite();
}