fread(),fwrite() 读/写流

C 库函数 - fread()

描述

C 库函数 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 从给定流 stream 读取数据到 ptr 所指向的数组中。

声明

下面是 fread() 函数的声明。

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)

参数

  • ptr -- 这是指向带有最小尺寸 size*nmemb 字节的内存块的指针。
  • size -- 这是要读取的每个元素的大小,以字节为单位。
  • nmemb -- 这是元素的个数,每个元素的大小为 size 字节。
  • stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流。

返回值

成功读取的元素总数会以 size_t 对象返回,size_t 对象是一个整型数据类型。如果总数与 nmemb 参数不同,则可能发生了一个错误或者到达了文件末尾。

实例

下面的实例演示了 fread() 函数的用法。

#include <stdio.h>
#include <string.h> int main()
{
FILE *fp;
char c[] = "This is new world";
char buffer[]; /* 打开文件用于读写 */
fp = fopen("file.txt", "w+"); /* 写入数据到文件 */
fwrite(c, strlen(c) + , , fp); /* 查找文件的开头 */
fseek(fp, SEEK_SET, ); /* 读取并显示数据 */
fread(buffer, strlen(c)+, , fp);
printf("%s\n", buffer);
fclose(fp); return();
}

让我们编译并运行上面的程序,这将创建一个文件 file.txt,然后写入内容 this is w3cschool。接下来我们使用 fseek() 函数来重置写指针到文件的开头,文件内容如下所示:

This is new world

C 库函数 - fwrite()

描述

C 库函数 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)ptr 所指向的数组中的数据写入到给定流 stream 中。

声明

下面是 fwrite() 函数的声明。

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)

参数

  • ptr -- 这是指向要被写入的元素数组的指针。
  • size -- 这是要被写入的每个元素的大小,以字节为单位。
  • nmemb -- 这是元素的个数,每个元素的大小为 size 字节。
  • stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输出流。

返回值

如果成功,该函数返回一个 size_t 对象,表示元素的总数,该对象时一个整型数据类型。如果该数字与 nmemb 参数不同,则会显示一个错误。

实例

下面的实例演示了 fwrite() 函数的用法。

#include<stdio.h>

int main ()
{
FILE *fp;
char str[] = "This is new world.cc"; fp = fopen( "file.txt" , "w" );
fwrite(str , , sizeof(str) , fp ); fclose(fp); return();
}

让我们编译并运行上面的程序,这将创建一个文件 file.txt,它的内容如下:

This is new world.cc

现在让我们使用下面的程序查看上面文件的内容:

#include <stdio.h>

int main ()
{
FILE *fp;
int c; fp = fopen("file.txt","r");
while()
{
c = fgetc(fp);
if( feof(fp) )
{
break ;
}
printf("%c", c);
}
fclose(fp);
return();
}
 
上一篇:codevs3145 汉诺塔问题


下一篇:node.js 写流 createWriteStream----由浅入深