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 filen");
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:UsersAdministrator>d:

D:>vc++cp_91Debugcp_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,

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

解决方案

文件存储格式一定要弄清

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 %srn" , , 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);
的区别

解决方案二:

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

时间: 2024-09-20 06:16:34

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

新手怎么思考c语言书上的例子

问题描述 新手怎么思考c语言书上的例子 c语言新手一枚,自学中,现在很不熟练. 面对书上稍微复杂一点的例子, 脑子里就一团浆糊.所以昨天开始就试着在敲例子前画程序流程图.然后再敲,请问这种方法是对的吗?如果不是或者有什么要补充的麻烦给我讲一下,谢谢啦! 解决方案 最好找一个懂程序的人教你下.看下人家是怎么写程序的. 我见过一些初学者遇到的困难,是因为他们完全是根据书本上写好的程序在模仿.但是这有一个问题,就是看不到程序从无到有的过程. 好比根据烧好的菜去研究烹饪或者根据画好的画去学习素描,这都是

java多线程问题,java 编程思想书中的例子

问题描述 java多线程问题,java 编程思想书中的例子 在看java编程思想书中的多线程一节,书中对wait,notify,notifyall举了一个例子,模拟给汽车涂蜡和抛光的过程, 因为抛光任务在涂蜡之前是不能尽兴的,反之,涂蜡任务在涂另外一层蜡之前,必须要等抛光任务结束.代码如下: 显示一个汽车类: class Car{ private boolean wanOn=false; public synchronized void waxed(){ waxOn=true; notifyAl

《UNIX网络编程 卷2:进程间通信(第2版)》——1.8 书中IPC例子索引表

1.8 书中IPC例子索引表 为分析各种特性,全书主要使用了三种交互模式. (1)文件服务器:客户-服务器应用程序,客户向服务器发送一个路径名,服务器把该文件的内容返回给客户. (2)生产者-消费者:一个或多个线程或进程(生产者)把数据放到一个共享缓冲区中,另有一个或多个线程或进程(消费者)对该共享缓冲区中的数据进行操作. (3)序列号持续增1:一个或多个线程或进程给一个共享的序列号持续增1.该序列号有时在一个共享文件中,有时在共享内存区中. 第一个例子分析各种形式的消息传递,另外两个例子则分析

c语言 数据存储问题 小白一名 谢谢帮助

问题描述 c语言 数据存储问题 小白一名 谢谢帮助 #include #include #include #define SIZE 3 errno_t err; struct Stu { char name[20]; int num; int age; char addr[15]; }stud[SIZE]; int main() { void save(FILE ); FILE *p; char file[20]; printf("输入目标文件,如果目标文件不存在,将会新建文件n");

老版本书中的例子用到newMessageElement()方法,系统报错怎么改?

问题描述 各位大侠,我自学JXTA技术手册,第五章RestoPeer和HungeryPeer中都有用到Message定义方法newMessageElement(),但系统报错:没有为类型Message定义方法newMessageElement(String,MimeMediaType,InputStream),可能是我用的lib版本2.3比较新,问题是怎么改呢?原例部分代码为:privatevoidsendFriesAuctionRequests(){//EnumeratealltheResto

在SQL Server的数据存储中与NTFS簇大小有关

NTFS是Windows NT以及之后的Windows 2000.Windows XP.Windows Server 2003.Windows Server 2008.Windows Vista和Windows 7的标准文件系统.NTFS取代了文件分配表(FAT)文件系统,为Microsoft的Windows系列操作系统提供文件系统.NTFS对FAT和HPFS(高性能文件系统)作了若干改进,例如,支持元数据,并且使用了高级数据结构,以便于改善性能.可靠性和磁盘空间利用率,并提供了若干附加扩展功能

新人求指导 c++primer书中例子

问题描述 新人求指导 c++primer书中例子 P190例子 #include #include using namespace std; string::size_type find_char(const string &s, char c, string::size_type &occurs) { auto ret = s.size(); occurs = 0; for (decltype(ret)i = 0; i != s.size(); ++i){ if (s[i] == c){

c语言-求帮备注解释 C 代码,编译原理 虎书中的

问题描述 求帮备注解释 C 代码,编译原理 虎书中的 虎书绪论里的联系,太凶...大学生表示看着很困难 求给定语句中任意子表达式内的print语句的参数个数,对一个直线式程序语言写的程序进行"解释". 三个头文件 (1)prog1.h A_stm prog(void); (2)slp.h typedef struct A_stm_ *A_stm; typedef struct A_exp_ *A_exp; typedef struct A_expList_ *A_expList; ty

c#-unity中C#书上给的例程出了问题,但我实在是太小白了不懂,附图

问题描述 unity中C#书上给的例程出了问题,但我实在是太小白了不懂,附图 解决方案 需要引用 UnityEngine,打开左边的references,里面有引用么? 解决方案二: 自己上网去搜啊.看看这些引用时那里来的 解决方案三: 提示没有引用两个类,或自己创建的类,或.NET中的类