*****以下分别是用CFile实现的文件名及其路径设定、新建文件、写文件、读文件样例代码:
//////////////////////////////////////////////////////////////////////////
/*<
/*<以下是Part 0: 将要被新建的文件的名字与路径设置
>*/
CString DefExt, strFilePath
DefExt.Format("%s","dat文件(*.dat)|*.dat|")
CFileDialog dlgFile(FALSE,"dat",
NULL,
OFN_HIDEREADONLY | OFN_CREATEPROMPT | OFN_NONETWORKBUTTON,
DefExt)
dlgFile.m_ofn.lpstrtitle="生成二进制DAT文件"
if(dlgFile.DoModal()==IDOK)
{
strFilePath = dlgFile.GetPathName()
}
if( strFilePath.IsEmpty() )
{
return
}
//////////////////////////////////////////////////////////////////////////
/*<
/*<以下是Part 1: 新建二进制文件
>*/
CFile createTxtFile( strFilePath, CFile::modeCreate | CFile::typeBinary )
createTxtFile.Close()
//////////////////////////////////////////////////////////////////////////
/*<
/*<以下是Part 2: 写入文件
>*/
CFile writeTxtFile( strFilePath, CFile::modeReadWrite | CFile::typeBinary )
int intValueIn = 10000
float fltValueIn = 123.456f
char strValueIn[20] = "乱码luanma"
writeTxtFile.Write( &intValueIn, sizeof(int))
writeTxtFile.Write( &fltValueIn, sizeof(float))
writeTxtFile.Write( &strValueIn, sizeof(strValueIn))
writeTxtFile.Close()
//////////////////////////////////////////////////////////////////////////
/*<
/*<以下是Part 3: 读出文件
>*/
CFile readTxtFile( strFilePath, CFile::modeRead | CFile::typeBinary )
int intValueOut = 0
float fltValueOut = 0
char strValueOut[20] = "\0"
readTxtFile.Read( &intValueOut, sizeof(int))
readTxtFile.Read( &fltValueOut, sizeof(float))
readTxtFile.Read( strValueOut, sizeof(strValueOut))
readTxtFile.Close()
*****
*****注:记得每次打开文件,都必须调用Close()释放对文件的占有权。
typedef struct xxx //定义一个你的数据类型{
int a
byte b
rect c
}xxx,*lpxxx
你就可以在程序用这个类型了。
void readfile()
{
xxx m
CFile i
i.open( "你的文件 ",CFilemodeRead)
i.Read(&m,sizeof(xxx))
i.close
当然你也可以重复读
xxx m[10]
for (int y=0y <10y++)
{i.Read(&m[y],sizeof(xxx))}
}
用c的话 fprint fscanf 等等 你可以看看书啊 就是文件那章的 。。。若是c++的话。。如下
#include <fstream>
using namespace std
…
// AuthInfo 是自定义的 struct
struct AuthInfo auth_info
string susername, spassword
/* 写文件 */
// 清零
ZeroMemory ( &auth_info, sizeof ( auth_info ) )
susername = “tanggaowei@gmail.com”
spassword = “000000″
// 内存拷贝
memcpy(auth_info.username, susername.c_str(), susername.length())
memcpy(auth_info.password, spassword.c_str(), spassword.length())
// 定义打开输出流
ofstream fout(”mbc.dat”, ios::binary)
// 写入
fout.write((char *)(&auth_info), sizeof(auth_info))
// 关闭输出流
fout.close()
/* 读文件 */
ZeroMemory ( &auth_info, sizeof ( auth_info ) )
ifstream fin ( “mbc.dat”, ios::binary )
fin.read((char *)(&auth_info), sizeof(auth_info))
susername = auth_info.username
spassword = auth_info.password
ZeroMemory ( auth_info.username, 100 ) // AuthInfo.username[100]
ZeroMemory ( auth_info.password, 50 )// AuthInfo.password[50]
memcpy(auth_info.username, susername.c_str(), susername.length())
memcpy(auth_info.password, spassword.c_str(), spassword.length())
fin.close()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)