
vc++中,文件中的数据怎么对结构体初始化
比如说文件中有NameIDaddr等数据是一个数据表xxx01xxYYY02YY结构体structnode{charName[10];intID[10];charaddr...
比如说文件中有 Name ID addr等数据是一个数据表
xxx 01 xx
YYY 02 YY
结构体struct node
{
char Name[10];
int ID[10];
char addr[10];
};
并且这个结构体是一个数组怎么初始化这个数组。。从文件中读取数据 展开
xxx 01 xx
YYY 02 YY
结构体struct node
{
char Name[10];
int ID[10];
char addr[10];
};
并且这个结构体是一个数组怎么初始化这个数组。。从文件中读取数据 展开
展开全部
struct node nodes[MAX];
memset(nodes,0,sizeof(nodes));
这样就全部初始化为全0了。(注意结构体数据成员不能是非纯C成员。比如string等)。
memset(nodes,0,sizeof(nodes));
这样就全部初始化为全0了。(注意结构体数据成员不能是非纯C成员。比如string等)。

2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
如果存的时候是以二进制类型存的,想将文件读取位置移到数据域,直接 file>>node 。。。。 如果就是你上面写的这个方式存的txt文件,就麻烦些,你需要一个解析函数来解析字符串,通过识别空格将每行的字符串分割成3个字符串,中间的我觉得你写错了你的ID应该是char数组,或者int变量,不应该是一个int数组。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-01
展开全部
/*因为我用了CString来读文件比较方便一些,所以我把楼主你的结构体里面变量的类型也变成了CString类型了,这样用起来会方便很多:)
下面程序的功能是从文件data.txt中读取数据(数据格式如你所说的用空格隔开,且一行一组数据),并赋值在node这个结构体里面:*/
#include <iostream.h>
#include <afx.h>
struct node
{
CString Name;
CString ID;
CString addr;
};
void main()
{
CStdioFile file;
node data[10];
int i = 0;
if(!file.Open("data.txt",CFile::modeRead))cout<<"file read error!<<endl;
else
{
CString s;
while (file.ReadString(s))
{
data[i].Name = s.Left(s.Find(" "));
s.Delete(0,s.Find(" ")+1);
data[i].ID = s.Left(s.Find(" "));
s.Delete(0,s.Find(" ")+1);
data[i++].addr = s;
}
}
for (int j = 0;j<i;j++)
{
cout<<"Name:"<<data[j].Name<<"\tID:"<<data[j].ID<<"\tAddr:"<<data[j].addr<<endl;
}
} </img>
下面程序的功能是从文件data.txt中读取数据(数据格式如你所说的用空格隔开,且一行一组数据),并赋值在node这个结构体里面:*/
#include <iostream.h>
#include <afx.h>
struct node
{
CString Name;
CString ID;
CString addr;
};
void main()
{
CStdioFile file;
node data[10];
int i = 0;
if(!file.Open("data.txt",CFile::modeRead))cout<<"file read error!<<endl;
else
{
CString s;
while (file.ReadString(s))
{
data[i].Name = s.Left(s.Find(" "));
s.Delete(0,s.Find(" ")+1);
data[i].ID = s.Left(s.Find(" "));
s.Delete(0,s.Find(" ")+1);
data[i++].addr = s;
}
}
for (int j = 0;j<i;j++)
{
cout<<"Name:"<<data[j].Name<<"\tID:"<<data[j].ID<<"\tAddr:"<<data[j].addr<<endl;
}
} </img>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于用文件数据来初始化结构体需要完成以下步骤:
首先打开文件读取你要的文件数据
读取的数据赋值给结构体就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c++结构体有构造函数,和类一样的构造函数
c没有,c里的结构体只是数据类型
c没有,c里的结构体只是数据类型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |