C语言基础八——文件操作

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<windows.h>
#include<string.h>

//全文复制至编译器使用,自行创建所需txt文件并修改路径
int main()
{
//文件操作
//1.文件分类
//(1)程序文件 源程序文件(后缀名.c) 目标文件(后缀名.obj) 可执行文件(后缀名.exe)等
//(2)数据文件 用于程序运行时读写的数据
//按数据组织形式分为:二进制文件(映像文件和ASCII文件(文本文件)
//2.文件名
//文件名由三部分组成:(1)文件路径(2)文件名主干(3)文件后缀
//D:\C++\VSproject\TEXT\text.c D:\C++\VSproject\TEXT\文件路径 text文件名主干 .c文件后缀
//3.指向文件的指针
//(1)文件指针定义
//FILE *f1;//FILE为系统定义的结构体
//(2)打开关闭文件
//fopen(文件名,使用文件方式);//文件打开函数。使用文件方式可查C/C++字典;
//f1=feopen("D:\C++\VSproject\TEXT\text.txt","r");//打开文件并用f1指向该文件,用完后记得关闭
//fclose(文件指针);//关闭文件,成功返回0,失败返回-1;
FILE *f1;
f1 = fopen("C:\\Users\\ASUS\\Desktop\\ac.txt", "r");//字符串中\是转义字符,故需要用\\。"r"代表只读"w"代表只写
//4.顺序读写
//ch=fgetc(f1);//从f1指向的位置读取一个字符,从文件头开始
//fputc(ch,f1);//向f1指向的位置写入字符ch
//fgets(str,n,f1);//从f1指向的位置读取长度为n-1的字符串
//fputs(str,f1);//写入字符串
//fscanf(f1,"%d",&a);//使用格式化输入从文件中读取数据
//fprintf(f1,"%d",x);//使用格式化输出向文件中写入数据
//fread(buffer,size,count,f1);//以二进制读取数据,buffer是一个数组用于存储数据,size为读取数据的大小,count为数据项个数
//fwrite(buffer,size,count,f1);//以二进制写数据
printf("%c", fgetc(f1));
char str[9];
fgets(str, 9, f1);
printf("%s", str);
char a;
fscanf(f1, "%c", &a);
printf("%c", a);
fclose(f1);
printf("\n");
//5.随机读写
//rewind(f1);//强制指针指向文件开头
//fseek(f1,位移量,起始点);//移动指针。位移量以字节为单位。0代表文件开始位置,1代表当前位置,2代表文件末尾
f1 = fopen("C:\\Users\\ASUS\\Desktop\\ac.txt", "w");

fputc('1', f1);//txt文文件是ASCII文件,
rewind(f1);
fputs("8888", f1);
fseek(f1, -1,1);
fprintf(f1, "%d", 2020);
fclose(f1);
//6文件读写检测
//if(ferror(f1))
// printf("文件读写失败");//每一次输入输出后都可以用该函数进行检查
//clearerr(f1);//清除ferror()产生的错误标志
//feof(f1);//判断是否读到文件末尾,到末尾时返回1
f1 = fopen("C:\\Users\\ASUS\\Desktop\\ac.txt", "r");
if (ferror(f1))
puts("文件读写失败\n");
else
puts("文件读写成功\n");
while (!feof(f1))
{
fgets(str, 5, f1);
printf("%s",str);
}
printf("\n");
fclose(f1);

system("pause");
return 0;
}

posted @ 2021-01-08 22:02  初学者(another)  阅读(168)  评论(0)    收藏  举报