#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//什么是文件?---磁盘上的文件=程序文件+数据文件
//程序文件:源程序文件(.c)目标文件(.obj)可执行文件(.exe)
//数据文件:文件内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,
//或者输出内容的文件
//文件名:文件路径+文件名主干+文件后缀
// 例:c:\code\test.txt
//一般不会关心FILE,
//
//流的概念
//程序转化成流,流放硬盘,U盘,网络等,。。可以通过程序来操作流,但是流怎么操作硬件不关心
//C语言运行起来,就默认打开三个流:FILE*管理这三个流:
//stdin--标准输入流--键盘
//stdout--标准输出流--屏幕
//stderr--标准错误流--屏幕
//
// 打开文件部分的替换:
//w,r分别是 r只读 w只写 a追加 rb只读 wb只写 ...(c plus++有)
//
//写文件部分的替换:
//字符输入函数fgetc适用于所有输入流(一个)
// 字符输出函数fputc适用于所有输出流(一个)
// 文本行输入函数fgetcs适用于所有输入流(一行)
// 文本行输出流函数fputs适用于所有输出流(一行)
// 格式化输入函数fscanf适用于所有输入流函数
// 格式化输出函数fprintf适用于所有输入流函数
// 二进制输入fread适用于文件
//二进制输出fwrite适用于文件
// 写文件部分fputc示例:
//int main()
//{
// fputc('b', stdout);//stdout---输出
// fputc('i', stdout);
// fputc('t', stdout);//bit
// return 0;
//}
// 写文件部分fgets示例:
// int main()
//{
//int ret = fgetc(stdin);
//printf("%c", ret);//b
//int ret = fgetc(stdin);
//printf("%c", ret);//i
//int ret = fgetc(stdin);
//printf("%c", ret);//t
//return 0;
//}
//
//
//总的示例1: w只写
//fopen函数---fopen()打开文件
//int main()
//{
// //打开文件
// FILE* pf = fopen("test.c", "w");//---"test.c"相对路径
// //----D:\\2021\\test.c---绝对路径
// //FILE*指针=fopen("文件名+后缀".c","w或者r等等");
// if (pf == NULL) //存在打开失败这种情况
// {
// perror("fopen");
// return 1;
// }
// //写文件
//
// //关闭文件
// fclose(pf);
// pf = NULL;
// return 0;
//}
//总的示例2:r 读的形式 fgetc适用于所有输入流(一个)
//int main()
//{
// //打开文件
// FILE* pf = fopen("test.c", "r");//r 读的形式
//
// if (pf == NULL)
// {
// perror("fopen");
// return 1;
// }
// //读文件
// int ret=fgetc( pf);//读取正常,返回该字符的ASCII,失败就返回EOF
// printf("%c", ret);//b
// int ret = fgetc(pf);
// printf("%c", ret);//i
// int ret = fgetc(pf);
// printf("%c", ret);//t
// //关闭文件
// fclose(pf);
// pf = NULL;
// return 0;
//}
//总的示例3:w 写的形式 fputs适用于所有输出流(一行)
int main()
{
//打开文件
FILE* pf = fopen("test.c", "w");//w 写的形式
if (pf == NULL)
{
perror("fopen");
return 1;
}
//写文件
fputs("abcdef", pf);
fputs("qwerty", pf);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}
//总的示例4:r 读的形式 fgetcs适用于所有输入流(一行)
int main()
{
//打开文件
char arr[10] = { 0 };
FILE* pf = fopen("test.c", "r");//r 读的形式
if (pf == NULL)
{
perror("fopen");
return 1;
}
//读文件
fgets(arr,4,pf);
printf("%s\n", arr);
fgets(arr, 4, pf);
printf("%s\n", arr);
//关闭文件
fclose(pf);
pf = NULL;
return 0;
}