
楼主可参考如下事例代码:
#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数组的元素个数每个元素长度不一、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)