从编辑框保存到txt文件遇到的一个问题 CStdioFile file; CString buffer; if(file.Open(szPath, CFile::modeCreate | CFile::modeReadWrite)) { UpdateData(TRUE); file.WriteString(m_edit); file.Close(); }Unicode工程,但需要保存为Ansi编码的文件,保存的时候换行符都变成了0D 0D 0A,多了个0D,不知道怎样解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 难道保存的时候会把0A自动变成0D 0A? 但是以二进制写入(CFile::typeBinary)又会在每个字符前面加一个00,比如00 0D 00 0A 的确,就是这样的,如果是文本文件方式写入,会将0A变成0D 0A。读出时,又会将0D 0A变成0A。如果是二进制方式写入,会将0D 0A原样写入,同时,我个人认为,因为是Unicode文件,占了两个字节,又会在每个字符前面加一个00 我通常只用fread、fwrite,这样可以保证编码不会被以外的转换,效率也有很好的保证。你的m_edit是rtf控件吧?没什么好办法,写文件之前,先拷到一个新的字符串数组中,然后把连着的0x0d只保留一个。 fp1 = _wfopen(_T("your.txt") ,_T("wb")); //char buf[200]; char *szName = new char[strProp.GetLength()+1]; // Convert down to ANSI WideCharToMultiByte(CP_ACP, 0, m_edit.GetBuffer(), -1, szName, m_edit.GetLength(), NULL, NULL); szName[m_edit.GetLength()]=0; fprintf(fp1,"%s", szName); delete[]szName; fclose(fp1); 谢谢!最后选择了用m_edit.Replace(_T("\r"),_T("")); 求解基于MFC框架的IP输入框使用实例 vs2010 例程不能运行 Bluetooth的setsockopt()的问题 InvalidateRect(hWnd,NULL,TRUE)使用这个更新窗口出现闪屏怎么解决? Window 7 64bit 系统中如何获取当前系统的虚拟内存量和可用虚拟内存? DCOM的本地路径如何修改? (我不是故意的)问个幼稚的问题,radio button怎么用? 关于矢量作图 给我一个 HelloWDM 可用的例程,我把所有的分都给你! 各位大侠,谁有驱动程序得例子?高分购买 简单送分题目\前面加个\ 散分了!!
如果是二进制方式写入,会将0D 0A原样写入,同时,我个人认为,因为是Unicode文件,占了两个字节,又会在每个字符前面加一个00
你的m_edit是rtf控件吧?没什么好办法,写文件之前,先拷到一个新的字符串数组中,然后把连着的0x0d只保留一个。
char *szName = new char[strProp.GetLength()+1];
// Convert down to ANSI
WideCharToMultiByte(CP_ACP, 0, m_edit.GetBuffer(), -1, szName, m_edit.GetLength(), NULL, NULL);
szName[m_edit.GetLength()]=0;
fprintf(fp1,"%s", szName);
delete[]szName;
fclose(fp1);