凡科企业网站如何建设,个人备案域名可以做哪些网站,网站建设学生选课系统设计,wordpress技巧标准IO开发前面分析的文件IO编程都是基于文件描述符的。这些都是基本的IO控制#xff0c;是不带缓存的。这里要讨论的IO操作是基于流缓冲的#xff0c;它是符合ANSIC的标准IO处理。标准IO提供流缓冲的目的是尽可能减少使用read和write调用的数量。标准IO提供了3种类型的缓冲存…标准IO开发前面分析的文件IO编程都是基于文件描述符的。这些都是基本的IO控制是不带缓存的。这里要讨论的IO操作是基于流缓冲的它是符合ANSIC的标准IO处理。标准IO提供流缓冲的目的是尽可能减少使用read和write调用的数量。标准IO提供了3种类型的缓冲存储。.全缓冲当填满标准IO缓存后才进行实际IO操作。.行缓冲当在输入和输出中遇到新行符时标准IO库执行IO操作。.不带缓冲标准IO库不对字符进行缓冲。如果用标准IO函数写若干字符到不带缓冲的流中则相当于用write系统函数将这些字符写全相比较的打开文件上。1.fopen#includemain(){FILE *fp;int c;if((fpfopen(exist,w))!NULL){printf(open success !);}fclose(fp);}/*----------------------------------------notes:1.fopen说明打开文件有三个标准,分别为:fopen,fdopen和freopen.它们可以以不同的模式打开,但都返回一个指向FILE的指针,该指针以将对应的IO流相绑定.此后,对文件的读写都是通过这个FILE指针来进行.2.fopen函数语法:1)所需的头文件 #include2)函数原型:FILE *fopen(const char *path,const char *mode)3)入口参数path:包含要打开的文件路径及文件名mode:文件打开状态4)返回值成功:指向FILE的指针失败:NULL3.mode 取值说明r或rb 打开只读文件,该文件必须存在r或rb 打开可读写的文件,该文件必须存在w或wb 打开只写文件,若文件存在则文件长度清为0,即会擦除文件以前的内容.若文件不存在则建立该文件w或wb 打开可读写文件,若文件存在则文件长度清为0,即会擦除文件以前的内容.若文件不存在则建立该文件a或ab 以附加的方式打开只写文件.若文件不存在,则会建立该文件;如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留a或ab 以附加方式打开可读写的文件.若文件不存在,则会建立该文件;如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留.4.在每个选项中加入b字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件.不过在linux系统中会自动识别不同类型的文件而将此符号忽略.--------------------------------------------*/2.fwrite#includeint main(){FILE *stream;unsigned char i,nmemb3;char s[3]{a,b,c};streamfopen(what,w);ifwrite(s,sizeof(char),nmemb,stream);printf(i%d,i);fclose(stream);}/*---------------------------------notes:1.fwrite函数是用于对指定的文件流进行写操作.2.fwrite函数格式1)所需头文件:#include2)函数原型 size_t fwrite(const void *ptr,size_t size,size_t nnmemb,FILE *stream)3)入口参数ptr:存放写入记录的缓冲区size:写入的记录大小nmemb:写入的记录数stream:要写入的文件流4)函数返回值:成功:返回实际写入到的nmemb数目失败:EOF---------------------------------------*/3.fput#includemain(){int c;fputc(fgetc(stdin),stdout);}/*-----------------------------------------文件在打开之后,根据一次读写文件中字符的数目可分为字符输入输出,行输入输出和格式化输入输出.一.字符输入输出字符输入输出函数一次仅读写一个字符.1.字符输出函数语法要点:1)需头文件 #include2)函数原型int getc(FILE *stream)int fgetc(FILE *stream)int getchar(void)3)入口参数:stream:要输入的文件流4)函数返回值:成功:下一个字符失败:EOF2.字符输入函数语法要点:1)需头文件 #include2)函数原型int putc(int c,FILE *stream)int fputc(int c,FILE *stream)int putchar(int c)3)函数返回值成功:字符c失败:EOF二.行输入输出1.行输出函数语法要点1)需头文件 #include2)函数原型char *gets(char *s)char fgets(char *s,int size,FILE *stream)3)函数入口参数s:要输入的字符串size:输入的字符串长度stream:对应的文件流4)函数返回值成功:s失败:NULL2.行输入函数语法要点1)需头文件 #include2)函数原型int puts(const char *s)int fputs(const char *s, FILE *stream)3)函数入口参数s:要输出的字符串stream:对应的文件流4)函数返回值:成功:s失败:NULL三:格式化输入输出1.格式化输出函数11)需头文件 #include2)函数原型int printf(const char *format,......)int fprintf(FILE *fp,const char *format,......)int sprintf(char *buf,const char *format,......)3)函数入口参数format:记录输出格式fp:文件描述符buf:记录输出缓冲区4)函数返回值成功:输出字符数(sprintf返回存入数组中的字符数)失败:NULL2.格式化输出函数21)需头文件#include#include2)函数原型int vprintf(const char *format,va_list arg)int vfprintf(FILE *fp,const char *format,va_list arg)int vsprintf(char *buf,const char *format,va_list arg)3)函数入口参数format:记录输出格式fd:文件描述符arg:相关命令参数4)函数返回值成功:存入数组的字符数失败:NULL3.格式化输入函数1)需要的头文件#include2)函数原型int scanf(const char *format,......)int fscanf(FILE *fp,const char *format,......)int sscanf(char *buf,const char *format,......)3)函数入口参数format:记录输出格式fp:文件描述符buf:记录输入缓冲区4)函数返回值成功:输出字符数(sprintf返回存入数组中的字符数)失败:NULL----------------------------------------------*/