如何用c++程序修改txt文件指定内容
展开全部
1.
用追加的方式打开文件,把文件指针知道指定位置,就可以实现向txt文件指定位置添加内容。
2.
例程:
void cgotofiledlg::onpaint()
{
if (isiconic())
{
cpaintdc dc(this);
sendmessage(wm_iconerasebkgnd, (wparam) dc.getsafehdc(), 0);
int cxicon = getsystemmetrics(sm_cxicon);
int cyicon = getsystemmetrics(sm_cyicon);
crect rect;
getclientrect(&rect);
int x = (rect.width() - cxicon + 1) / 2;
int y = (rect.height() - cyicon + 1) / 2;
dc.drawicon(x, y, m_hicon);
}
else
{
cdialog::onpaint();
}
}
hcursor cgotofiledlg::onquerydragicon()
{
return (hcursor) m_hicon;
}
void cgotofiledlg::onbutopen()
{
cfiledialog dlg(true,null,null,ofn_hidereadonly|ofn_overwriteprompt,
"all files(*.txt)|*.txt||",afxgetmainwnd());//构造文件打开对话框
if (dlg.domodal() == idok)//判断是否按下"打开"按钮
{
m_path = dlg.getpathname(); //获得文件路径
file *pfile = fopen(m_path,"r+t");//以读写形式打开文件
if (pfile)//判断文件是否被正确打开
{
char pchdata[1000] = {0};//定义数据缓冲区
fread(pchdata,sizeof(char),1000,pfile); //读取数据到缓冲区中
fclose(pfile);//关闭文件
m_file = pchdata;
}
updatedata(false);
}
}
void cgotofiledlg::onbutinsert()
{
updatedata();
file *pfile = fopen(m_path,"r+t");//以读写形式打开文件
if (pfile)//判断文件是否被正确打开
{
fseek(pfile,m_goto,seek_set);//定位文件
cstring str = m_text + m_file.right(m_file.getlength()-m_goto);//设置字符串
fputs(str.getbuffer(0),pfile); //向文件中写入数据
fseek(pfile,0,seek_set);//重新定位文件
char pchdata[1000] = {0};//定义数据缓冲区
fread(pchdata,sizeof(char),1000,pfile); //读取数据到缓冲区中
fclose(pfile);//关闭文件
m_file = pchdata;
updatedata(false);
}
}
用追加的方式打开文件,把文件指针知道指定位置,就可以实现向txt文件指定位置添加内容。
2.
例程:
void cgotofiledlg::onpaint()
{
if (isiconic())
{
cpaintdc dc(this);
sendmessage(wm_iconerasebkgnd, (wparam) dc.getsafehdc(), 0);
int cxicon = getsystemmetrics(sm_cxicon);
int cyicon = getsystemmetrics(sm_cyicon);
crect rect;
getclientrect(&rect);
int x = (rect.width() - cxicon + 1) / 2;
int y = (rect.height() - cyicon + 1) / 2;
dc.drawicon(x, y, m_hicon);
}
else
{
cdialog::onpaint();
}
}
hcursor cgotofiledlg::onquerydragicon()
{
return (hcursor) m_hicon;
}
void cgotofiledlg::onbutopen()
{
cfiledialog dlg(true,null,null,ofn_hidereadonly|ofn_overwriteprompt,
"all files(*.txt)|*.txt||",afxgetmainwnd());//构造文件打开对话框
if (dlg.domodal() == idok)//判断是否按下"打开"按钮
{
m_path = dlg.getpathname(); //获得文件路径
file *pfile = fopen(m_path,"r+t");//以读写形式打开文件
if (pfile)//判断文件是否被正确打开
{
char pchdata[1000] = {0};//定义数据缓冲区
fread(pchdata,sizeof(char),1000,pfile); //读取数据到缓冲区中
fclose(pfile);//关闭文件
m_file = pchdata;
}
updatedata(false);
}
}
void cgotofiledlg::onbutinsert()
{
updatedata();
file *pfile = fopen(m_path,"r+t");//以读写形式打开文件
if (pfile)//判断文件是否被正确打开
{
fseek(pfile,m_goto,seek_set);//定位文件
cstring str = m_text + m_file.right(m_file.getlength()-m_goto);//设置字符串
fputs(str.getbuffer(0),pfile); //向文件中写入数据
fseek(pfile,0,seek_set);//重新定位文件
char pchdata[1000] = {0};//定义数据缓冲区
fread(pchdata,sizeof(char),1000,pfile); //读取数据到缓冲区中
fclose(pfile);//关闭文件
m_file = pchdata;
updatedata(false);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询