您好,欢迎来到[问答大全]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 问答大全 >> 电脑网络 >> c语言 书中的例子 可是出了问题 关于数据存储 小白一名 谢谢帮忙 求助

c语言 书中的例子 可是出了问题 关于数据存储 小白一名 谢谢帮忙 求助

来源:网络整理     时间:2016/4/10 0:57:21     关键词:数据存储,C语言

关于网友提出的“c语言 书中的例子 可是出了问题 关于数据存储 小白一名 谢谢帮忙 求助”问题疑问,本网通过在网上对“c语言 书中的例子 可是出了问题 关于数据存储 小白一名 谢谢帮忙 求助”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:c语言 书中的例子 可是出了问题 关于数据存储 小白一名 谢谢帮忙 求助
描述:

目标文件内容:
A 1001 19 class
B 1001 19 class
C 1001 19 class
D 1001 19 class
E 1001 19 class
F 1001 19 class
G 1001 19 class
H 1001 19 class
I 1001 19 class
J 1001 19 class

代码:
#include
#include
#include
#define SIZE 10
struct Stu {
char name[10];
int num;
int age;
char addr[15];
}stud[SIZE];
int main()
{
FILE *p;
errno_t err;
err = fopen_s(&p, "D:\out.dat", "rb");
if (err != 0)
{
printf("Can't find this file\n");
exit(0);
}
else
{
for (int i = 0; i < SIZE; i = i + 2)
{
fseek(p, i*sizeof(Stu), 0);
fread(&stud[i], sizeof(Stu), 1, p);
printf("%s,%d,%d,%s", stud[i].name, stud[i].num, stud[i].age, stud[i].addr);
}
fclose(p);
}
}

Microsoft Windows 版本 10.0.10240 2015 Microsoft Corporation. All rights reserved.

C:\Users\Administrator>d:

D:>vc++\cp_91\Debug\cp_91.exe
A 1001 19 class
B 1001 19 class
C ,225669985,824197642,001 19 class
C 01 19 class
F 1001 19 class
G 1001,824198666,540094512,19 class
G 10019 class
J 1001 19 class
,540094512,1663056177,lass
,0,0,,0,0,

为什么会这样子 出现这种情况 搞不清楚哪里出了 问题


解决方案1:

你的目标文件明明是ascii文本,怎么用二进制方式存取呢

解决方案2:

文件存储格式一定要弄清

for (int i = 0; i < SIZE;++i)
{
fscanf(p, "%s %d %d %s" , , stud[i].name, stud[i].num, stud[i].age, stud[i].addr);
}

fwrite(&stud[i], sizeof(Stu), 1, p);
和 fprintf(p,"%s %d %d %s\r\n" , , stud[i].name, stud[i].num, stud[i].age, stud[i].addr) ;
的区别

fread(&stud[i], sizeof(Stu), 1, p);

fscanf(p, "%s %d %d %s" , , stud[i].name, stud[i].num, stud[i].age, stud[i].addr);
的区别


以上介绍了“c语言 书中的例子 可是出了问题 关于数据存储 小白一名 谢谢帮忙 求助”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/wd/628517.html

相关图片

相关文章