求一个Cstring类数组文件读取代码

求一个Cstring类数组文件读取代码,第1张

楼主可参考如下事例代码

#include <iostreamh>

#include <afxh>

class CInfo // 类的简单定义

{

public:

int m_num;

CString m_name;

};

BOOL SaveCInfoData(const CString strFilePath, CInfo pclInfo, int nCount); // 存文件的函数

BOOL ReadCInfoData(const CString strFilePath, CInfo pclInfo, int nCount); // 读文件的函数

BOOL SaveCInfoData(const CString strFilePath, CInfo pclInfo, int nCount)

{

CFile file;

int nNameLen = 0;

CInfo pclInfoTrace = pclInfo;

if ( (NULL == pclInfo) || (nCount < 1) )

{

return FALSE;

}

if (!fileOpen(strFilePath, CFile::modeCreate | CFile::modeWrite, NULL))

{

return FALSE;

}

for (int i = 0; i < nCount; ++i)

{

nNameLen = pclInfoTrace->m_nameGetLength();

fileWrite(&pclInfoTrace->m_num, sizeof(int));

fileWrite(&nNameLen, sizeof(int));

fileWrite(pclInfoTrace->m_nameGetBuffer(pclInfoTrace->m_nameGetLength()),

pclInfoTrace->m_nameGetLength());

++pclInfoTrace;

}

fileClose();

return TRUE;

}

BOOL ReadCInfoData(const CString strFilePath, CInfo pclInfo, int nCount)

{

CFile file;

char acBuffer[100] = {0};

int nNameLen = 0;

CInfo pclInfoTrace = pclInfo;

if ( (NULL == pclInfo) || (nCount < 1) )

{

return FALSE;

}

if (!fileOpen(strFilePath, CFile::modeRead, NULL))

{

return FALSE;

}

for (int i = 0; i < nCount; ++i)

{

memset(acBuffer, 0x00, 100);

fileRead(&pclInfoTrace->m_num, sizeof(int));

fileRead(&nNameLen, sizeof(int));

fileRead(acBuffer, nNameLen);

pclInfoTrace->m_name = acBuffer;

++pclInfoTrace;

}

fileClose();

return TRUE;

}

int main() // 测试用主程序

{

CInfo aclInfo[3];

CInfo aclInfo1[3];

aclInfo[0]m_num = 1;

aclInfo[0]m_name = "WangGang";

aclInfo[1]m_num = 2;

aclInfo[1]m_name = "Zhangming";

aclInfo[2]m_num = 3;

aclInfo[2]m_name = "LiLiang";

SaveCInfoData("c:\\testdata", aclInfo, 3);

ReadCInfoData("c:\\testdata", aclInfo1, 3);

for (int i = 0; i < 3; ++i)

{

cout << aclInfo1[i]m_num << " " << aclInfo1[i]m_name << endl;

}

return 0;

}

输出结果:

1 WangGang

2 Zhangming

3 LiLiang

请注意如下几点:

1 事例程序用VC60编译通过

2 在控制台程序中使用CString, CFile需要修改工程属性, 开启使用MFC

3 将CSting存文件需要提取它的缓冲区存储,恢复时也是一样,不能CSting本身

汗,这个意思啊。用容器阿。

#include<vector>

vector<string> a;

apush_back(""A);

放多少都可以。

然后用

asize()就可以知道了。vector类是很强大的。用起来特别方便

以上就是关于求一个Cstring类数组文件读取代码全部的内容,包括:求一个Cstring类数组文件读取代码、如何求得一个string数组的元素个数每个元素长度不一、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9596196.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存