#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; }