请教:fopen 能写文件吗?如何写。

请教:fopen 能写文件吗?如何写。,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

想使用libjpeg写一个,把jpeg各式的图片变成rgb模式的,转换完了,需要我自己建立文件写入?还是说他自动生成啊?如果是我自己建立的话,再c++中,使用fopen可以建立文件,怎么把缓冲区内的数据写进去呢?使用fopen,还使用fstream?

解析:

两种都可以,不过你最好只使用一种输入输出。如只使用stdio或fstream,

fopen对应写入函数,fwrite(),

fstream对于write成员函数。

FILE *out = fopen("abc.rgb", "wb")

int a

fwrite(&a, sizeof(int), 1, out)

ofstream out("abc.rgb", ios_base::binary)

out.write(&a, sizeof(int))

C语言fwrite写入文件可以参考以下的代码:

// 定义一个学生结构体

struct Student_type

{

char name[10]

int num

int age

char addr[30]

}stud[40]

int i

FILE *fp  // 定义一个文件指针fp

fp = fopen("stu.dat", "wb")  // 以二进制可写方式打开stu.dat文件

// 将40个学生的记录写入文件stu.dat中

for(i=0 i<40 i++)

fwrite(&stud[i], sizeof(struct Student_type), 1, fp)

扩展资料:

fwrite函数用法

size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream)

返回值:返回实际写入的数据块数目

1、buffer:是一个指针,对fwrite来说,是要获取数据的地址

2、size:要写入内容的单字节数

3、count:要进行写入size字节的数据项的个数

4、stream:目标文件指针

5、返回实际写入的数据项个数count

说明:写入到文件的哪里与文件的打开模式有关,如果是w+,则是从file pointer指向的地址开始写,替换掉之后的内容,文件的长度可以不变,stream的位置移动count个数;如果是a+,则从文件的末尾开始添加,文件长度加大。

fseek对此函数有作用,但是fwrite函数写到用户空间缓冲区,并未同步到文件中,所以修改后要将内存与文件同步可以用fflush(FILE *fp)函数同步。

参考资料来源:百度百科-fwrite

在本文章中,您将学习如何使用C fwrite函数来创建一个随机访问文件。

fwrite()函数在stdio.h库中定义。函数的作用是:将数据写入二进制文件。

下面是fwrite()函数的语法:

函数的作用是:将内存中的数据块写入文件。它有以下参数:

下面的示例使用fwrite()函数将从0到9的数字写入文件:

它是如何执行的。

首先,使用fopen()函数打开文件numbers.dat。fopen()使用wb模式将二进制数据写入文件。如果文件不存在,它将创建一个新文件。但是,如果文件已经存在,它将覆盖文件的内容。

其次,从0迭代到9,并使用fwrite()函数将每个数字写入文件:

下面的语句将一个整数写入文件:

第三,使用fclose()函数关闭文件:

假设您需要将库存数据写入文件。库存包括一份记录清单,其中每条记录包含以下信息:

第二,定义一个函数,允许用户输入多个产品:

input()函数的定义如下:

第三,定义一个函数,将记录保存到filename指定的文件中:

save()函数的定义如下:

save()函数做三件事:打开文件,将产品列表中的每个结构体写到文件中,并关闭它。

最后,定义一个函数来显示输入的清单:

display()函数的逻辑如下:

放在一起:

请注意,SIZE常量定义了用户每次输入的产品数量。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8072206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存