| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 781 人关注过本帖
标题:关于文本文件数据读写格式的小问题(内附代码)!
只看楼主 加入收藏
Iamagays
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-6-21
收藏
 问题点数:0 回复次数:4 
关于文本文件数据读写格式的小问题(内附代码)!

# include <iostream.h>
# include <fstream.h>
# include <string.h>
class city
{
char cname[10];
char cno[4];
public:
city() {};
city(char m[],char n[])
{
strcpy(cname,m);
strcpy(cno,n);
}
void disp()
{
cout<<"城市:"<<cname<<"区号:"<<cno<<endl;
}
int find(char n[])
{
if (strcmp(cno,n)==0)
return 1;
else
return 0;
}
};
void main()
{
fstream f;
f.open("city.dat",ios::trunc|ios::in);
city s,s1("北京","010"),s2("上海","021"),s3("天津","022");
f.write((char *)&s1,sizeof(city)); //将三个对象写入到city.dat文件中
f.write((char *)&s2,sizeof(city));
f.write((char *)&s3,sizeof(city));
f.seekg(0,ios::beg);
char n[4];
cout<<"输入区号:";
cin>>n;
for(int i=0;i<3;i++) // 搜索区号
{
f.read((char *)&s,sizeof(s));//......什么意思?
if (s.find(n))
{
s.disp();
break;
}
}
if (i==3)
cout<<"输入的区号未找到!"<<endl;
f.close();
}

这个程序中我有两个地方不太明白,分别写在下面。

1:f.seekg(0,ios::beg);的意思是否为将读指针移到距离文件开头位置为0的地方,也就是读指针移到文件头?

2:city s定义的时候并未像s1,s2,s3一样有真实意思,对象s不含任何数据,那么如何能够利用f.read((char *)

&s,sizeof(s));读数据并和char n[4]建立联系呢?


[此贴子已经被作者于2007-7-17 0:43:45编辑过]

搜索更多相关主题的帖子: 文本文件 内附 数据 格式 代码 
2007-07-16 22:35
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 
回复:(Iamagays)关于文本文件数据读写格式的小问题...

/*---------------------------------------------------------------------------
File name: bid_io.cpp
Author: HJin (email: fish_sea_bird [at] yahoo [dot] com )
Created on: 7/16/2007 08:35:46
Environment: Windows XP Professional SP2 English +
Visual Studio 2005 v8.0.50727.762

Contents of city.dat: (note that it is exactly 42 bytes.)

00000000h: B1 B1 BE A9 00 01 38 00 00 00 30 31 30 00 C9 CF ; 北京..8...010.上
00000010h: BA A3 00 00 00 00 04 FF 30 32 31 00 CC EC BD F2 ; 海.....


I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-07-16 23:38
Iamagays
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-6-21
收藏
得分:0 
多谢斑竹,我还有一个问题不明白,就是下面代码。
if (s.find(n) )
{
s.disp();
break;
}
为什么给定一个n,就可以知道n所对应的城市名?比如在s1("北京", "010")中,如果给出010,程序就可以知道城市名是北京,其中010和北京有什么对应关系么?

[此贴子已经被作者于2007-7-17 14:58:06编辑过]

2007-07-17 14:56
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
好好看看class city就明白了!

Fight  to win  or  die...
2007-07-17 15:56
Iamagays
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-6-21
收藏
得分:0 
我初学C++对class理解得还不是很深入,斑竹能否给小弟详加指点一二?
2007-07-17 23:34
快速回复:关于文本文件数据读写格式的小问题(内附代码)!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020062 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved