附加说明 putchar()非真正函数,而是putc(c,stdout)宏定义 。
范例 参考getchar() 。
24.rewind(重设文件流的读写位置为文件开头)
相关函数 fseek,ftell,fgetpos,fsetpos
表头文件 #includestdio.h
定义函数 void rewind(FILE * stream);
函数说明 rewind()用来把文件流的读写位置移至文件开头 。参数stream为已打开的文件指针 。此函数相当于调用fseek(stream,0,SEEK_SET) 。
返回值
范例 参考fseek()
25.setbuf(设置文件流的缓冲区)
相关函数 setbuffer , setlinebuf , setvbuf
表头文件 #includestdio.h
定义函数 void setbuf(FILE * stream,char * buf);
函数说明 在打开文件流后 , 读取内容之前,调用setbuf()可以用来设置文件流的缓冲区 。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址 。如果参数buf为NULL指针 , 则为无缓冲IO 。Setbuf()相当于调用:setvbuf(stream,buf,buf?_IOFBF:_IONBF,BUFSIZ)
返回值
26.setbuffer(设置文件流的缓冲区)
相关函数 setlinebuf , setbuf,setvbuf
表头文件 #includestdio.h
定义函数 void setbuffer(FILE * stream,char * buf,size_t size);
函数说明 在打开文件流后,读取内容之前,调用setbuffer()可用来设置文件流的缓冲区 。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址,参数size为缓冲区大小 。
返回值
27.setlinebuf(设置文件流为线性缓冲区)
相关函数 setbuffer,setbuf , setvbuf
表头文件 #includestdio.h
定义函数 void setlinebuf(FILE * stream);
函数说明 setlinebuf()用来设置文件流以换行为依据的无缓冲IO 。相当于调用:setvbuf(stream,(char * )NULL,_IOLBF,0);请参考setvbuf() 。
返回值
28.setvbuf(设置文件流的缓冲区)
相关函数 setbuffer , setlinebuf,setbuf
表头文件 #includestdio.h
定义函数 int setvbuf(FILE * stream,char * buf,int mode,size_t size);
函数说明 在打开文件流后,读取内容之前 , 调用setvbuf()可以用来设置文件流的缓冲区 。参数stream为指定的文件流,参数buf指向自定的缓冲区起始地址,参数size为缓冲区大?。问齧ode有下列几种
_IONBF 无缓冲IO
_IOLBF 以换行为依据的无缓冲IO
_IOFBF 完全无缓冲IO 。如果参数buf为NULL指针 , 则为无缓冲IO 。
返回值
29.ungetc(将指定字符写回文件流中)
相关函数 fputc,getchar,getc
表头文件 #includestdio.h
定义函数 int ungetc(int c,FILE * stream);
函数说明 ungetc()将参数c字符写回参数stream所指定的文件流 。这个写回的字符会由下一个读取文件流的函数取得 。
返回值 成功则返回c 字符,若有错误则返回EOF 。
复制代码代码如下:
#include stdio.h
#include stdlib.h
int main()
{
FILE *fp = NULL;
char* str;
char re;
int num = 10;
str = (char*)malloc(100);
//snprintf(str, 10,"test: %s", "0123456789012345678");
// printf("str=%s\n", str);
fp = fopen("/local/test.c","a+");
if (fp==NULL){
printf("Fail to open file\n");
}
//fseek(fp,-1,SEEK_END);
num = ftell(fp);
printf("test file long:%d\n",num);
fscanf(fp,"%s",str);
printf("str = %s\n",str);
printf("test a: %s\n",str);
while ((re=getc(fp))!=EOF){//getc可以用作fgetc用
printf("%c",re);
}
//fread(str,10,10,fp);
fgets(str,100,fp);
printf("test a: %s\n",str);
sprintf(str,"xiewei test is:%s", "ABCDEFGHIGKMNI");
printf("str2=%s\n", str);
//fprintf(fp,"%s\n",str);
fwrite(str,2,10,fp);
num = ftell(fp);
推荐阅读
- 图形推理题技巧直播平台,图形推理题技巧直播平台答案
- u盘系统进去什么都没有,系统u盘没有反应
- 如何阻止华为更新为鸿蒙,怎样阻止华为系统更新
- 直播用的工具有哪些,直播用的工具有哪些呢
- go语言读取配置文件参数 go语言读取csv
- 华为路由器蓝灯怎么关了,华为路由器蓝灯怎么关了呢
- 电脑上企业微信怎么打开,电脑上企业微信怎么打开定位
- 虚拟内存空间修改时间,虚拟内存更改
- vb.net磁碟机代号 fc磁碟机bios文件下载