前言:
目前各位老铁们对“c语言fwrite无法写入”大致比较关切,我们都想要分析一些“c语言fwrite无法写入”的相关内容。那么小编同时在网络上网罗了一些有关“c语言fwrite无法写入””的相关内容,希望你们能喜欢,咱们快快来了解一下吧!感谢您的阅读与点赞!欢迎关注:「大猫玩程序」,查看C语言系列文章
本节主要讨论ANSI C的输入和输出(I/O)函数。
打开流:fopen:
原型:FILE fopen(const char path,const char * mode);
返回值:成功,返回文件指针,失败返回NULL,错误码保存在errno中 .
示例:
FILE *fp;fp = fopen(“/home/tianger/test”,”r”);if(NULL == fp){ perror(“/home/tianger/test”);}
关闭流:fclose:
原型:int fclose( FILE *fp );
返回值:成功,返回0;失败,返回EOF(-1)
示例:
关闭fopen打开的fp
fclose(fp);fp = NULL;
读缓冲区:fread:
作用:fread从一个文件流中读数据,最多读取count个元素,每个元素size字节,如果调用成功返回实际读取到的元素个数,如果不成功或读到文件末尾返回 0
原型:size_t fread ( void buffer, size_t size, size_t count, FILE stream) ;
参数:
buffer 用于接收数据的内存地址
size 要读的每个数据项的字节数,单位是字节
count 要读count个数据项,每个数据项size个字节.
stream 输入流
返回值:实际读取的元素个数。如果返回值与count不相同,则可能文件结尾或发生错误。从ferror和feof获取错误信息或检测是否到达文件结尾。
示例:
#include<stdio.h>#include<string.h>int main(void){ FILE*stream; char msg[]="this is a test"; char buf[20]; if((stream=fopen("big_cat.txt","w+"))==NULL) { fprintf(stderr,"Can not open output file.\n"); return 0; } /*write some data to the file*/ fwrite(msg,strlen(msg)+1,1,stream); /*sizeof(char)=1 seek to the beginning of the file*/ fseek(stream,0,SEEK_SET); /*read the data and display it*/ fread(buf,strlen(msg)+1,1,stream); printf("%s\n",buf); fclose(stream); return 0;}
输出:
产生一个big_cat.txt文件,并打印 this is a test.
写缓冲区: fwrite:
说明:fwrite 指向文件写入一个数据块.fwrite只是把程序先写到缓冲区,真正写入到文件,由操作系统决定,如果此时你想快速把缓冲区内容写入到文件,可以调用fflush()来实现。
原型:size_t fwrite(const void buffer, size_t size, size_t count, FILE stream);
返回值:返回实际写入的数据块数目
示例:
#include <stdio.h>int main (){ FILE * pFile; char buffer[] = { 'x' , 'y' , 'z' }; pFile = fopen ( "big_cat.txt" , "wb" ); fwrite (buffer , sizeof(buffer), 1 , pFile ); fclose (pFile); return 0;}
输出:
往文件big_cat.txt中写入xyz
标签: #c语言fwrite无法写入 #c语言fwrite函数的功能