社区
C++ Builder
帖子详情
C++中如何将结构数组内容写入到文件中?急!
dyfh
2002-05-28 06:20:03
我需要将一些诸如用户信息、用户密码之类的东东以结构数组的形式写入到文件中,在Delphi中很容易实现,但我现在在BCB或VC中就不知如何去做,请问各位大虾,如何将结构数组内容写入到文件中,再读出来,而且不能用记事本打开的方式看到其中的内容
急救,谢了!
...全文
755
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++
实现从.txt
文件
中
读取数据存入
数组
,将
数组
数据
写入
.txt
文件
本文介绍了如何使用VS2017编译器实现两种不同场景下读写.txt
文件
:预知
数组
大小的存储与未知大小的字符串
数组
处理。包括从
文件
读取存入
数组
、
数组
数据
写入
文件
,以及处理字符串
数组
的方法。
C++
中
如何进行txt
文件
的读入和
写入
本文介绍如何使用
C++
的IO流进行TXT
文件
的读取与
写入
操作,包括ifstream与ofstream的基本使用方法。
C++
文件
的录入和读取(
结构
体
数组
)
本文介绍了
C++
中
文件
录入和读取的相关知识,涉及ofstream(输出
文件
流)、ifstream(输入
文件
流)和fstream(兼具读写功能)三种数据类型。还给出了一个简单示例,包含
结构
体
数组
的定义,以及录入和读取
文件
的函数实现。
C++
对txt
文件
的
写入
读取操作
文章介绍了
C++
中
文件
流的概念,包括ifstream用于读取
文件
,ofstream用于
写入
文件
。通过示例展示了如何打开、
写入
和关闭
文件
,以及如何追加
内容
到已有
文件
。还讨论了getline函数在读取
文件
内容
时的作用。
C++
将
数组
保存入.txt
文件
本文介绍了使用
C++
将
数组
内容
保存到.txt
文件
的两种方法:fwrite()和fprintf()函数。fwrite()以二进制形式一次性
写入
,而fprintf()则逐个元素
写入
数字。通过示例代码展示了具体实现。
C++ Builder
13,874
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章