当前位置:C++技术网 > 资讯 > C语言文件操作详细分析:4 写入文件(fwrite函数使用)

C语言文件操作详细分析:4 写入文件(fwrite函数使用)

更新时间:2015-06-25 23:24:12浏览次数:1+次

C语言写入文件函数fwrite说明如下:
原型
size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );

    此函数声明与fread基本一样,就是第一个参数是const修饰的,防止缓冲被修改的,其他的都一样。
返回值
    函数返回实际上成功写入的元素数。返回的元素数可能比想写入的元素个数少,因为可能出错。一旦出错,文件指针的位置是不确定的。
第一个参数
    文件缓冲,用来提供数据的缓冲,不管缓冲是什么类型,都是按照字节进行写入的。指针必须是有效的指针哦。
第二个参数
    指定元素的大小,以字节为单位。如果大小为0,不会写入,缓冲的内容不会被修改,就直接返回0,表示没有写入任何数据。
第三个参数
    指定要写入的元素个数。如果为0,也不会写入内容。这个在MSDN中说的是最大写入的元素个数。其实这个参数就是传入你想写入的元素的个数。MSDN说最大的个数,表明写入可能出错,这样就达不到指定的个数。说的最大的个数,指的是,没有遇见任何错误顺利的写入了所有要写入的数据,就可以达到指定的这个数目。
第四个参数
    使用fopen打开的文件的文件指针。此指针必须是有效的指针,打开文件前一定要检查指针是否有效。打开文件要以写入模式打开哦。
说明
1. fwrite是将第一个参数中的缓冲的数据写入到文件流的。文件关闭后,数据就被刷新到文件了,或者系统的文件缓冲满了,会自动刷新到文件。写入多少字节,文件指针就递增多少。
2.如果打开文件是以文本模式打开的,那么单个的换行符(\n)会预先替换成成对的回车换行符(\r\n)。预先表示的是,在指针遇到回车符号(\n)时,就自动替换,然后继续往后操作。这个替换不会影响返回值的。

代码使用示例:
#include <stdio.h>
void main( void )
{
   FILE *stream;// - 文件指针
   char list[30]="这是一段文字。"// - 30字节缓冲
   int numwrite;
   if( (stream = fopen( "test.txt", "w+t" )) != NULL )
   {
      numwrite= fwrite( list, sizeof( char ), 30, stream );
      printf( "已经写入字符数 = %d\n", numwrite);
      fclose( stream );
   }
   else
      printf( "文件无法打开\n" );
}