首页 > 其他分享 >文件操作

文件操作

时间:2022-11-21 20:34:52浏览次数:28  
标签:文件 stream pf FILE test 操作 指针

1,程序设计中文件分为程序文件数据文件

数据文件根据数据的组织形式被称为文本文件二进制文件

              二进制文件:数据在内存中以二进制形式存在,不加转换的输出到外存

              文本文件:以ASCII字符存出的文件(原因:有时要求外存以ASCII码的形式存储,则需要在                  存储前进行转换)

文件操作_文件指针

test.c

#include<stdio.h>
int main()
{
int a = 10000;
FILE* pf = fopen("test.txt","wb");
fwrite(&a, 4, 1, pf);
取a地址 4个字节 复制1份 复制到pf(既test.txt文件所在地址)
fclose(pf);
pf = NULL;
return 0;
}

test.txt

00000000  10 27 00 00

fopen:打开文件        参数1:目标文件(如果没有,自动创建该文件)                   

                               参数2:打开形式(w:写  b:二进制)

fwrite:写文件          参数1:只想要写入内容的指针

                              参数2:写入内容的大小(单位 字节)

                              参数3:要写入的最大条目数(就是写几遍)

                              参数4:要写入文件的指针

fclose:释放文件  (P75)

文件使用方式              含义                                                                      如果指定文件不存在   

文件操作_文件指针_02

文件的顺序读写

文件操作_数据_03

文件的随机读写

根据文件指针的起始位置和偏移量来定位文件指针 in fseek( FILE *stream, long offset, int origin );

返回文件指针的偏移量       long ftell   ( FILE *stream );

让文件指针回到起始位置    void rewind( FILE *stream );


puts自带换行


文件缓冲区:

文件操作_文件指针_04


0:scanf/printf:    是针对标准输入/输出流的格式化输入/输出语句

    fscanf/fprintf:是针对所有输入/输出流的格式化输入/输出语句

    sscanf:从字符串中读取格式化的数据

   sprintf:将格式化的数据转化为(存储到)字符串

1,  打印错误消息          void perror( const char *string );

    测试流上的错误        int ferror( FILE *stream ); 文件出错返回非0值/未出错返回0

   判断文件结束原因      int feof( FILE *stream );  读完文件结束返回非0值  否则返回0

                                                                           

#include<stdio.h>
int main()
{
char c;
FILE* pf = fopen("test.txt", "r");
if (pf == NULL)
{
perror("file open faild");
return EXIT_FAILURE;//返回 -1
}
while ((c = fgetc(pf) )!= EOF)
{
putchar(c);
}
printf("\n");
if (ferror(pf))
puts("error when readding");
else if (feof(pf))
puts("end of file readed successfully");
fclose(pf);
pf = NULL;
return 0;
}





标签:文件,stream,pf,FILE,test,操作,指针
From: https://blog.51cto.com/u_15815270/5875292

相关文章