我还是有win本可以用的…… /斜眼笑
开始肝文件……
暂时先写一会儿笔记,之后再放练习题的……
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>
void print_open_file_failure(){
printf("File could not be opened\n");
}
void func1(){
//文件的打开和关闭;
// PS:
// r 打开,可以读取。
// w 打开,可以写入(但会删除之前的内容),若不存在,则创建之。
// a 打开,可以写入(追加),若不存在,则创建之。
// r+打开,可以进行更新(即读和写)。
// w+打开,可以进行更新(即读和写,但是会先删除文件原内容),若不存在,则创建之。
// a+打开,可以进行更新(即读和写)(追加),若不存在,则创建之。
// rb/wb/ab/r+b/w+b/a+b 对二进制文件的操作
FILE *fptr=NULL;
char filename[200];
scanf("%s",filename);
fptr=fopen(filename,"w");
//这个其实还是不太懂……
//打开文件==创建NULL类型记录,分配缓存区,拷贝FCB到内存的打开文件表,将缓冲区首地址、FCB在打开文件表的下标写入FILE记录(若失败返回NULL)
fflush(fptr);//清理一个文件的缓存区
int x;
x=fclose(fptr);
printf("%d\n",x);
//关闭文件指针指向的文件,将所有未回写缓冲数据写入文件,断开文件和流的关联,释放文件占用的资源。
//如果正常关闭,返回0。否则返回EOF
}//文件的打开和关闭;
void func2(){
//以"r","w"方式打开文件,文件指针指向文件头;
//(即所谓"追加")以"a"方式打开文件,文件指针指向文件尾;
FILE *fptr;
char filename[200];//本人的文件名很长……
scanf("%s",filename);
fptr=fopen(filename,"a");
if (fptr==NULL){
print_open_file_failure();
}
else{
int loc=0;
printf("%p\n",fptr);
rewind(fptr);//文件位置指针指向文件头;
printf("%p\n",fptr);
printf("%d\n",loc);
loc=fseek(fptr,12,SEEK_SET);//修改文件位置指针指向任一字节处;
printf("%p\n",fptr);
printf("%d\n",loc);
loc=(int)ftell(fptr);//返回文件当前位置;
if (loc==-1L){
printf("ftell() error\n");
}
else{
printf("%p\n",fptr);
printf("%d\n",loc);
}
fclose(fptr);
}
}//位置指针与文件定位
int main(){
//func1();//文件的打开和关闭;
func2();//位置指针与文件定位
return 0;
}
网友评论