社区
C++ Builder
帖子详情
C++中如何将结构数组内容写入到文件中?急!
dyfh
2002-05-28 06:20:03
我需要将一些诸如用户信息、用户密码之类的东东以结构数组的形式写入到文件中,在Delphi中很容易实现,但我现在在BCB或VC中就不知如何去做,请问各位大虾,如何将结构数组内容写入到文件中,再读出来,而且不能用记事本打开的方式看到其中的内容
急救,谢了!
...全文
724
10
打赏
收藏
C++中如何将结构数组内容写入到文件中?急!
我需要将一些诸如用户信息、用户密码之类的东东以结构数组的形式写入到文件中,在Delphi中很容易实现,但我现在在BCB或VC中就不知如何去做,请问各位大虾,如何将结构数组内容写入到文件中,再读出来,而且不能用记事本打开的方式看到其中的内容 急救,谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dyfh
2002-09-07
打赏
举报
回复
一下子三个月没来,欠了六个问题的分数没给,不好意思,现在都分发了
mygodness
2002-05-29
打赏
举报
回复
你的程序应该不用二进制方式
mygodness
2002-05-29
打赏
举报
回复
刚来,已经解决了吗?
加分的话,可以点击上面的"管理"
dyfh
2002-05-28
打赏
举报
回复
to xdspower
读写结构时只能用二进制文件格式打开,是怎么个意思?我是新手,不明白机制,为什么C++的一位朋友说不能用二进制文件?
这是他的在C++版的回复:
什么意思?你每次向文件中写单位为结构体的大小不就可以了?不要用二进制文件。
dyfh
2002-05-28
打赏
举报
回复
自己找到原因了,是这句:)
读的时候怎么能用"at"呢,笨
xdspower
2002-05-28
打赏
举报
回复
我不知道你的结构是如何定义的,不过我知道在c中读写文件和delphi中是差不多的,你要注意读写结构时只能用二进制文件格式打开,此外因为我不知道你的My_Friends结构是如何定义的,不过你要注意由于数据对齐而产生的一系列问题。
dyfh
2002-05-28
打赏
举报
回复
不行了,又得回来问,按你的方法,我可以正确写入,但读的时候读不出来(Edit里是空值),可能是对于指针之类的东西还不太熟,所以用的不对,可是自己现在头脑发木,看什么都一样,还请务必指出错误所在
void __fastcall TfrmMain::btnWriteClick(TObject *Sender)
{
strcpy(My_Friends[0].Name,Edit1->Text.c_str());
strcpy(My_Friends[0].sex,"男");
strcpy(My_Friends[0].handSet,"139");
strcpy(My_Friends[0].GroupID,str.c_str());
FILE *fp;
if ((fp = fopen("c:\\userinfo.dat", "at")) == NULL)
{
//
}else{
fwrite(&My_Friends[0], sizeof(My_Friends[0]), 1, fp);
fclose(fp);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnReadClick(TObject *Sender)
{
FILE *fp;
if ((fp = fopen("c:\\userinfo.dat", "at")) == NULL)
{
ShowMessage("不能打开文件!");
}else{
int nFileLen,nRecLen,nNum;
nRecLen=sizeof(My_Friend);
nFileLen=filesize(fp);
nNum=nFileLen/nRecLen;
fread(&My_Friends[0], nRecLen, nNum, fp);
char * szTemp;
szTemp=&My_Friends[0].Name[0];
Edit2->Text=szTemp;
Edit3->Text=My_Friends[0].sex;
Edit4->Text=My_Friends[0].handSet;
Edit5->Text=My_Friends[0].GroupID;
fclose(fp);
}
}
dyfh
2002-05-28
打赏
举报
回复
你的意思我大致明白了:)
这里不知为什么怎么也加不上分,明天再加吧:)
mygodness
2002-05-28
打赏
举报
回复
你可以先定义一个结构,上面的函数里,size可以写为sizeof(yourstruct)
想加密,你得另想办法了
mygodness
2002-05-28
打赏
举报
回复
你说的是要加密了,写结构很容易:
1、这里谈到的存取文件的一般方法。而且是常用的一种。
2、首先在包含文件里加入#include <stdio.h>
3、要操作文件,首先要建立文件的指针。如下:FILE *fp,*in,*out;
4、接下来,建立指针指针和文件的联系,主要用fopen,一般的写法是:
if ((in = fopen("\\AUTOEXEC.BAT", "rt")) == NULL)
{
fprintf(stderr, "Cannot open input file.\n");
return 1;
}
有必要说明的是fopen的第一个参数是要打开的文件名,第二个参数是打开方式,可用参数一般有以下几种:r,w,a,r+,w+,a+,很多人知道这些参数的含义,我还是再多哆嗦一下:r 是只读方式,w是写入方式,a是附加方式,也就是写入的数据将加到文件尾部。r+,w+,a+基本和r,w,a意义想似,只是r+,w+均是可读可写。fopen的返回值就是文件指针,如果为NULL,说明文件打开的操作没有成功。特别要说明的是,如果文件里有可能有特殊的符号,包括NULL,那么在打开方式后加上b就行了,如rb,这样文件将以二进制方式打开。
5、下面可以读写文件了:可以用的函数有这么几种:fread(void *ptr, size_t size, size_t n, FILE *stream),这个函数的意思就是将n个大小为size字节的数据,从文件steam里读到缓冲区ptr里,这个ptr可以是数组等。fwrite(const void *ptr, size_t size, size_t n, FILE *stream)这是写数据的
征服
C++
11视频精讲
【为什么还需要学习
C++
?】 你是否接触很多语言,但从来没有了解过编程语言的本质?... 提升篇: 本篇可以帮助学员更加高效的进行
c++
开发,其
中
包含类型转换、
文件
操作、异常处理、代码重用等
内容
。
C++
vector与
数组
转换
写入
/读出
文件
(十八)
#include <iostream> #include <fstream> #include <string.h> #include <vector> using namespace std; template <class T> int compute_array_len(T &arr){ int len = sizeo...
总结:
C++
中
如何把输出结果
写入
到
文件
中
文是我在网上搜到额一些经验汇总。
C++
把输出结果
写入
到
文件
中
文件
I/O 在
C++
中
比烤蛋糕简单多了。 在这篇文章里,我会详细解释ASCII和二进制
文件
的输入输出的每个细节,值得注意的是,所有这些都是用
C++
完成的。 一、ASCII 输出 为了使用下面的方法, 你必须包含头
文件
(译者注:在标准
C++
中
,已经使用取代,所有的
C++
标准头
文件
都是无后缀的。)。这是
写
结构
体
数组
到
文件
中
写
结构
体到
文件
中
,也可由此写链表到
文件
中
学习笔记——Linux
写入
整型、
结构
体
数组
到
文件
接之前的
内容
之前三节我们介绍了Linux的open等函数,编写了cp指令,也修改了配置
文件
学习笔记——Linux的open、write、read、lseek、close函数 学习笔记——Linux
文件
操作cp指令 学习笔记——Linux小应用修改配置
文件
这些操作都是
写入
或者读取字符串,那对于整型数或者
结构
体能不能行呢? 当然可以,下面简单演示下
写入
整型数到
文件
#include <sys/types.h> #include <sys/stat.h> #include <
C++ Builder
13,824
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章