行文不易,新手上路,多多关注,惊喜不断,私信更有惊喜

fopen()函数浸染: 在C措辞中fopen()函数用于打开指定路径的文件,获取指向该文件的指针。
函数原型:

FILE fopen(const char path,const char mode); -- path: 文件路径,如:\"大众F:\Visual Stdio 2012\test.txt\"大众 -- mode: 文件打开办法,例如: \"大众r\"大众 以只读办法打开文件,该文件必须存在。
\"大众w\"大众 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消逝。
若文件不存在则建立该文件。
\"大众w+\"大众 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消逝。
若文件不存在则建立该文件。
\公众a\公众 以附加的办法打开只写文件。
若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原来的内容会被保留。
(EOF符保留) \"大众a+\"大众 以附加办法打开可读写的文件。
若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原来的内容会被保留。
(原来的EOF符不保留) \"大众wb\"大众 只写打开或新建一个二进制文件,只许可写数据。
\公众wb+\"大众 读写打开或建立一个二进制文件,许可读和写。
\"大众ab\"大众 追加打开一个二进制文件,并在文件末端写数据。
\"大众ab+\"大众读写打开一个二进制文件,许可读,或在文件末追加数据。
--返回值: 文件顺利打开后,指向该流的文件指针就会被返回。
如果文件打开失落败则返回NULL,并把缺点代码存在errno中。
fwrite()函数浸染:在C措辞中fwrite()函数常用语将一块内存区域中的数据写入到本地文本。
函数原型:

size_t fwrite(const void buffer, size_t size, size_t count, FILE stream); -- buffer:指向数据块的指针 -- size:每个数据的大小,单位为Byte(例如:sizeof(int)便是4) -- count:数据个数 -- stream:文件指针

把稳:返回值随着调用格式的不同而不同

调用格式:fwrite(buf,sizeof(buf),1,fp);

成功写入返回值为1(即count)

phpfopenwbw根本文件操作fopen fwritefread函数应用以及示例 Ruby

调用格式:fwrite(buf,1,sizeof(buf),fp);

成功写入则返回实际写入的数据个数(单位为Byte)

扫尾事情

写完数据后要调用fclose()关闭流,不关闭流的情形下,每次读或写数据后,文件指 针都会指向下一个待写或者读数据位置的指针。

案例

下面代码可将1024个字(int)写入到文本文件,fwrite的调用中,size是sizeof(int),count是DATA_SIZE

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #define DATA_SIZE 1024 int main() { unsigned int dataPtr = NULL; dataPtr = (unsigned int )malloc(sizeof(int)DATA_SIZE); for(unsigned int i=0;i<DATA_SIZE;i++) { dataPtr[i] = i; //初始化缓存区 } FILE fp = fopen(\公众F:\\Labwindows cvi\\test.txt\公众,\公众w\"大众); fwrite(dataPtr,sizeof(int),DATA_SIZE,fp); fclose(fp); free(dataPtr); system(\"大众pause\"大众); return 0; } fread()函数 浸染:从一个文件流中读取数据 函数原型如下:

size_t fread(void buffer, size_t size, size_t count, FILE stream); -- buffer:指向数据块的指针 -- size:每个数据的大小,单位为Byte(例如:sizeof(int)便是4) -- count:数据个数 -- stream:文件指针

把稳:返回值随着调用格式的不同而不同:

调用格式:fread(buf,sizeof(buf),1,fp);

读取成功时:当读取的数据量恰好是sizeof(buf)个Byte时,返回值为1(即count)

否则返回值为0(读取数据量小于sizeof(buf))

调用格式:fread(buf,1,sizeof(buf),fp);

读取成功返回值为实际读回的数据个数(单位为Byte)

案例

定义两个FILE变量,一个用于write,一个用于read,写完后要close掉,然后再打开,然后读。

#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char argv[]) { FILE filp = NULL; char fileDir[] = \"大众/home/yangzhiyuan/Documents/test.txt\"大众; char dataPtr[] = \"大众Helloworld\"大众; printf(\"大众sizeof(dataPtr) = %ld\n\"大众,sizeof(dataPtr)); filp = fopen(fileDir,\"大众w+\"大众); / 可读可写,不存在则创建 / int writeCnt = fwrite(dataPtr,sizeof(dataPtr),1,filp); / 返回值为1 / //int writeCnt = fwrite(dataPtr,1,sizeof(dataPtr),filp); / 返回值为11 / printf(\"大众writeCnt = %d\n\"大众,writeCnt); fclose(filp); FILE fp = NULL; fp = fopen(fileDir,\"大众r\"大众); char buffer[256]; int readCnt = fread(buffer,sizeof(buffer),1,fp); / 返回值为0 / //int readCnt = fread(buffer,1,sizeof(buffer),fp); / 返回值为11 / printf(\公众readCnt = %d\n\"大众,readCnt); fclose(fp); printf(\公众%s\n\公众,buffer); exit(0); }

行文不易,新手上路,多多关注,惊喜不断