文件

来源:互联网 发布:追梦美工学院 编辑:程序博客网 时间:2024/04/19 10:45

1、压缩:把二进制数,换一种形式存放(前几组数据可以记录总共有多少个0,分别在什么位置)
2、FILE:下边的FILE的结构体详解:
 
文件打开函数:fopen
文件关闭函数: fclose
字符读写函数:fgetc 和 fputc
字符串读写函数:fgets 和 fputs
数据块读写函数:freed 和 fwrite
格式化读写函数:fscanf和 fprinf
随机读写函数:rewind和fseek
---------fopen();的格式


 
其中所说的读写,是文件本身设置的属性。即:只读文件,和可读写文件等。。。
"r"--打开的文件必须已经存在,且只能从该文件中读出;
"w"--只能写入;1、文件不存在,则以制定的文件名建立该文件;2、如果不存在,就将该文件删去,重新建一个新文件。
"a"--追加文件内容,在已经存在的文件中添加内容。
如果打开的文件有错误,就返回一个NULL;

fclose:有返回值 ,关闭成功返回0;失败返回非0;(成功只有一种情况,失败有很多种可能)
EOF:不是可输出字符,其值是-1,当读入的字符值等于-1时,表示结束。
3、打开一个绝对路径时,路径名中\要转义为\\。
 ep:G:\code\C_code\test应该写为G:\\code\\C_code\\test

4_1、ch=fgetc(fp),在文件fp中得到一个字符给ch,该文件必须是以“读”或者“读写”的方式打开;
 fgetc(ch,fp);把字符ch写入到fp中;
4_2、 fgets(str,n,fp);每次遇到换行符,文件尾或者n个数据就会结束,而换行符也会存起来。
从文件fp中读取n-1个数据,保存到str中。最后会加一个'\0';
fputs("china",fp)写一个字符串的到fp中,而字符串的'\0'不会被写到fp中;
fgets(s2,strlen(s1)+1,fp);是从字符串fp中读出并写到s2中,并且读出strlen(s1)+1个;

5、数据块的读写:fread(buf,size,count,fp);一般的形式是:size=总长度,count=1;这样不会使空间上出问题。
buf:指向存储数据空间的首地址的指针.
size:要读数据的字节数
count:要读多少个size字节的数据
fp:指向要进行读操作的文件
fwrite(buf,size,count,fp);
buf:指向存储数据空间的首地址的指针.
size:要写数据的字节数
count:要写多少个size字节的数据
fp:指向要进行写操作的文件

5、格式化读写:(从磁盘读入或者输出字符)
fprintf ( 文件指针,格式字符串,输出表列);
fscanf  ( 文件指针,格式字符串,输入表列);


6、在文件中,如果先写一个整型的int,读出时用%c读的话,读出的是直接为字符型。ep:输入为101,输出为'1','2','3';
7、fseek()函数中,第二个参数为正就往后找,负是往前找。
8、ftell()和fseek()配合可以测试出目标文件的大小,先告诉目前地址,然后找到文件末尾,告诉此时的地址,地址差就是文件的大小。
9、每次测完文件大小时,就必须把fp中的指针指向fp首部,即需要调用rewind();


 

原创粉丝点击