🚩write in front🚩
🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~2022博客之星Top63~作者周榜84﹣作者总榜704~阿里云专家博主 & 阿里云星级博主~掘金优秀创作者⇿InfoQ创作者⇿51CTO红人⇿全网访问量50w+🏅
🆔本文由 謓泽 原创 如需转载还请通知⚠
📝个人主页-謓泽51Ctop的博客📃
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏-謓泽51Ctop的博客_【C语言】从0~1_51CTO博客🎓
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩
🍑🍑🍑文件的顺序读写🍑🍑🍑
📢文件的顺序读写:实际上就是怎么样才能把我所写的数据一一的写在文件当中。
这里再次说下🍅"流"🍅的概念,虽说在上面已经说过了。"防止大家忘记,说的就是你张三"
"流":是指信息从外部输入设备(如键盘)向计算机内部(如内存)输入和从内存向外部输出设备(显示器)输出的过程。这种输入输出的过程被形象的比喻为"流"。
在写代码的时候,我先介绍下🍅文件的顺序读写🍅的函数的一些使用功能。
🍉fgetc() → 字符输入函数🍉
⚡️函数的声明方式如下⚡️
int fgetc ( FILE * stream );
从流中获取字符↓
- 返回指定流的内部文件位置指示器当前指向的字符。然后,内部文件位置指示符被推进到下一个字符。
- 如果调用时流位于文件结束位置,则函数返回EOF并设置流的文件结束指示符(feof)。
- 如果发生读错误,该函数返回EOF并设置流的错误指示符(ferror)。
参数↓
- 指向标识输入流的FILE对象的指针。
返回值↓
- 如果成功,则返回字符读取(提升为int值)。返回类型为int,以适应特殊值EOF,表示失败。
- 如果位置指示符位于文件结束位置,函数返回EOF并设置流的EOF指示符(feof)。
- 如果发生了其他的读取错误,函数也会返回EOF,但会设置它的错误指示符(ferror)。
✨适用于输入流当中✨
🍉fputc() → 字符输出函数🍉
⚡️函数的声明方式如下⚡️
int fputc ( int character, FILE * stream );
将字符写入流↓
- 将一个字符写入流并使位置指示器向前移动。字符被写入到流的内部位置指示器所指示的位置,然后该位置指示器自动前进1。
参数↓
- character:要写的字符的 int 提升。写入时,该值在内部转换为 unsigned char📩
- stream:指向标识输出流的FILE对象的指针。
返回值↓
- 如果成功,则返回所写的字符。如果发生写错误,则返回EOF并设置错误指示器(ferror)
✨适用于输出流当中✨
🍓🍓 fputc() 代码示例🍓🍓
那么这里我们就用 fputc() 函数开始写入文件在 test.txt 文件上写入"c"。
代码示例如下↓
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
FILE* pf = fopen("test.txt", "w");
//返回值判断
if (pf == NULL)
{
perror("fopen");
return 1;//返回
}
//写文件
fputc('c', pf);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
张三同学:那么我们看看是否写入了数据( ̄▽ ̄)"
从上述图中可以看出成功写入了数据🍅'c'🍅,当然我们要注意下即使我们只要以🍅'w'🍅的形式去打开的时候,即使原来文件当中有数据内容也会被清空。
张三:真的是太神奇了(-/*˃̶ᗜ˂̶/*-)
这里注意下是可以进行多个的假设我们要 cpp 的话,直接在加下就可以了。如下代码所示↓
fputc('c', pf);
fputc('p', pf);
fputc('p', pf);
特别注意一点假设我们是这样的↓
fputc('1001', pf);
它这里写入文件数据当中会是都是按照最后一位的数字来的,也就是数字1。
🍉"三个流"🍉
在这里再说说"流"的概念 FILE*,实际上C语言只要运行起来就默认打开了三个流↓
- stdin → 标准输入流 → 键盘
- stdout → 标准输入流 → 屏幕
- stderr → 标准错误流 → 屏幕
那这不就可以配合我们上面所说的函数去使用了吗。
张三:对啊,毕竟它们实际上也是 FILE* 啊(●'◡'●)
那么,假设我需要用 fputc() 在屏幕上给输出信息,就用 🍅stdout🍅 不就可以了吗。
代码示例如下↓
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
FILE* pf = fopen("test.txt", "w");
//返回值判断
if (pf == NULL)
{
perror("fopen");
return 1;//返回
}
//写文件
fputc('c', stdout);
fputc('p', stdout);
fputc('p', stdout);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
运行结果如下🖊