永发信息网

C语言中多维数组如何用二进制文件方式存盘?

答案:5  悬赏:0  手机版
解决时间 2021-02-16 04:55
C语言中多维数组如何用二进制文件方式存盘?
最佳答案
fwrite(go3ui2,3,16384*1878, pr); //这样可以

也可以是
fwrite(go3ui2,1,16384*1878*3, pr);

总之,只要写入的大小等于数组的大小就可以了
全部回答
写了一个粗糙的程序
下面是一个数字的三维数组,用三重循环进行写入存取
#include
#include
#define R 2
#define S 2
#define T 3
int main()
{
int arr[R][S][T];
int i, j,k;
FILE *fp;
if ((fp = fopen("s.dat", "wb+")) == NULL)
{
fprintf(stderr, "打开文件失败!");
exit(1);
}
for(i=0; i {
for (j=0; j {
for (k=0; k {
scanf("%d", arr[i][j]+k);
fwrite(arr[i][j]+k, sizeof(int), 1, fp);
}
}
}
rewind(fp);
for(i=0; i {
for (j=0; j {
for(k=0; k {
fread(arr[0][0]+0, sizeof(int), 1, fp);
printf(" %d ", arr[0][0][0]);
}
puts("");
}
}
return 0;
}
//----------------------
//可是对于三维数组:
char go3ui2[16384][1878][3];
//该怎么存盘呢?
pr=fopen("c:\\4.ck","wb");
fwrite(go3ui2,3,16384,1878, pr); //这样肯定不行吧?
fwrite(go3ui2,3,16384*1878, pr); //这样行吗?
//有其它方法吗?
//----------------------------------------------
三维字符型数组读取与写入
#include
#include
#define R 2
#define S 3
#define SIZE 20
int main()
{
char arr[R][S][SIZE];
int i, j;
FILE *fp;
if ((fp = fopen("s.dat", "wb+")) == NULL)
{
fprintf(stderr, "打开文件失败!");
exit(1);
}
for(i=0; i {
for (j=0; j {
fwrite(gets(arr[i][j]), SIZE, 1, fp);
}
}
rewind(fp);
for(i=0; i {
for (j=0; j {
fread(arr[i][j], sizeof(arr[i][j]), 1, fp);
puts(arr[i][j]);
}
}
return 0;
}
可以看出,对于三维的字符串数组,可以少做一个循环! 只要你愿意 四,五,六,更多维都可以!
//-------------------------------
不知道你用多维数组做什么程序,至于数据的存盘,完全可以用一维去做!
如果是学习数组的多维遍历,此小示例应该满足你的需求!
long int numwritten;
numwritten = fwrite(go3ui2,sizeof(char),16384*1878*3, pr);
检查 写入个数numwritten 对不对.你的数据量较大.
肯定不行啊。用sizeof判断大小,否则可能出问题。 读取的时候也一样,不要直接指定大小。
记得当年这么课我不及格!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
兴山县宜昌牛肉包子店这个地址怎么能查询到,
苏家坨子这个地址在什么地方,我要处理点事
ICP证增值电信业务经营许可证在哪里办理?
苹果手机没丢但支付宝没有了怎么找回
第二秒内是什么意思??????是前两秒还是
中国移动通信祥瑞营业厅这个地址在什么地方,
孝南区孝感三汊镇兽医站哪位知道具体地址啊
选择题要使³√(4-a)³=4-a成立,则a的取值
学4g网络优化专业以后可以从事什么工作?
河南科技大学第一附属医院栾川分院在哪里啊,
太极美美归芪生血颗粒过期一年还能吃吗?
差信用社四万快钱贷款都快四年拉也没还,利息
零陵区永州星之升拼音英语学校我想知道这个在
宝马n55发动机高压油泵故障会是什么现象
我早上醒来的时候手麻木是怎么回事啊只有一半
推荐资讯
现代游戏手柄驱动谁知道哪有啊??急
夫子庙大市场(金榜大市场)现在的营业时间到
湖滨区三门峡开阳盛世A区营销中心(建设中)地
关注微信平台并绑定迅雷帐号,奖励3天迅雷会员
郭德纲一个相声的问题,求解!
请问下谁知道古诗翻译在线有会的人说下嘛,我
龙王庙坡地址在哪,我要去那里办事
化石证明有许多物种只存活了相当短暂的时代
团队名叫浦公英好吗
李先生2013年1月升职为一家公司的总经理,年
四道杠是什么牌子的鞋
Happiness is for everyone. You don’t need
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?