自己在网上查找代码凑了一个小程序,功能是:**把编辑框的内容保存到文件中**
具体相关函数如下:
//保存文件
void savefile(string b,string c)
{
string the_end = "";
the_end = the_end + c +"\n"+"\r";
ofstream out(b,ios::app);
out<<the_end;
out.close();
}
//mfc取编辑框内容
void CMFCApplication2Dlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
CString getwords;
GetDlgItem(IDC_EDIT2)->GetWindowText(getwords);
bool over1 = ForSave(getwords);
}
//MFC数据保存到TXT中
bool ForSave(CString TheWord)
{
char *chr = (char*)malloc((TheWord.GetLength()+1)*sizeof(char));
memset(chr,0,(TheWord.GetLength()+1)*sizeof(char));
WideCharToMultiByte(CP_ACP,0,TheWord.GetBuffer(),-1,chr,TheWord.GetLength(),NULL,NULL);
string str(chr);
savefile("C:/Users/dell/Desktop/1.txt",str);
return TRUE;
}
调用之后确实能保存进文件中,但是我再进行转存或者使用ctrl+s保存后,文件的换行回车全部都消失了。如图:
对于这样一种情况是否是代码有问题?需要如何修改?
我在**单行测试**中发现多次保存不会出现上述的丢失换行回车符号的情况。
是否有一种方法能够完成将编辑框的数据按**行**取出再进行操作?
新人没有C币。这也是我在CSDN的第一个问题,希望各位大大能帮我解惑谢谢你们。
Edit控件你读取出来,可以先打印出来看看,应该是有换行符的,\n等,然后你再一个个处理。
\r\n表示回车换行,而你用 "\n"+"\r" 我就搞不懂了。