文件读写

文本文件——
FILE* file = fopen("xx.txt","xx")
//fopen返回值是一个FILE指针  为0则打开失败

fputc('w',file);
//把字符w写入file 写入成功返回一个int型值 写入字符包含在低字节 高字节为0

fgetc(file);
//成功返回一个int型值 写入字符包含在低字节 高字节为0
//从文件读取一个字符 若无变量保存则数据丢弃 FILE结构体中不仅包含了文件打开时在缓冲区的信息还保存着一个文件内部的位置指针,用来指向文件当前读写的字节,
//每次调用fgetc()后位置指针向后移动一个字节

fputs("wwwww",file);
//把字符串wwwww写入文件  函数写入成功返回值为非负值

fgets(str,10,file);
//从文件中读取(10-1)个字符存入字符串数组str中,最后一个字符不读因为fgets函数在str[9]自动添加了‘\0’,若读取失败 函数返回空指针null.
//遇到换行和EOF停止读取


二进制——
FILE* file = fopen("xx.bin","xx")
putw(1,file);
//把int 数据‘1’写入file  file会自动将其转换为二进制保存

getw(file);
//读取一个整型数据  返回值就是读取的整型值

fwrite(str,sizeof(int),2,file);
//将str中以4字节为单位的数据块写入file中(追加式的读取)进行两次  函数的返回植为实际写入文件的数据块数量 若小于2则写入出错

fread(str,sizeof(int),2,file);
// 将文件中以4字节为单位的数据块读取保存到str中(追加式的读取)进行两次 函数的返回植为实际读取文件的数据块数量 若小于2则读取出错

ftell(file);
//返回值表示文件的位置指示器的当前位置值

fseek(file,10,SEEK_SET);
//将位置指针从文件首部开始移到第10个字节(可负值) SEEK_CUR当前位置 SEEK_END文件末尾  如果成功移动了位置指针返回0 若出现错误返回非0


!!!!!-》w+ r+ a+:都可读可写。 w+可无文件打开; a+可无文件打开并且追加写入(不追加读取);r+要求文件存在

r(不存在ar 和 wr的模式 r+:以读的模式打开并且打开后可写 )
w
a(追加模式 位置指针SEEK_SET在原文件尾 并且无法前移到原文件中)   所有写操作都是覆盖
t
b(按2进制文件模式打开)
+(读和写)

posted @ 2013-10-28 17:14  sssssnian  阅读(140)  评论(0编辑  收藏  举报