CStdioFile类问题 用WriteString如何写入char型的buffer?如下:char buf[] = "abcdef";如何通过WriteString将buf写入文件呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 char* pFileName = "test.dat";CStdioFile f1;if( f1.Open( pFileName, CFile::modeCreate | CFile::modeWrite | CFile::typeText ) ){char buf[] = "abcdef";f1.WriteString(buf);} 这样会提示错误:cannot convert parameter from 'char *' to 'LPCTSTR'pFileName和buf都会提示类似的错误 char buf[] = "abcdef";f1.WriteString((LPCTSTR)buf); CStdioFile::WriteString(CString(buf)); 恩,用CString强制类型转换是可以写进去的可是用LPCTSTR强制类型转换的时候,编译和链接都没出错,也可以运行,就是数据全部丢失了,这是为什么呢? CStdioFile f1;if( f1.Open( _T("C:\\test.log"), CFile::modeCreate | CFile::modeWrite | CFile::typeText ) ){ char buf[] = "abcdef"; f1.WriteString((LPCTSTR)buf); f1.WriteString(_T("1234"));}f1.Close();运行结果:1234写进去了,abcdef没有写进去 不是没写进去,而是1234把abcdef那一行覆盖了,因为1234在abcdef之后写的原因,所以你要换行再写 CStdioFile f1;if( f1.Open( _T("C:\\test.log"), CFile::modeCreate | CFile::modeWrite | CFile::typeText ) ){char buf[] = "abcdef";f1.WriteString((LPCTSTR)buf);f1.WriteString(_T("\r\n"));f1.WriteString(_T("1234"));}f1.Close();这样的结果是:文件的第一行为空白,第二行1234 char buf[] = "abcdef";改成:TCHAR buf[] = _T("abcdef");你可能用的是UNICODE VS2010的问题 关于WM_PAINT消息的疑问 动态创建多个控件之后,如何知道我选择的当前控件 有没有这样的一种3D数据结构 Sleep期间当前程序是否还能继续执行其它任务?UP有分。 点击工具栏中的按钮弹出自定义菜单的问题? 500分相送求网络语音聊天例程 《Programming Windows程式开发设计指南》Charles Petzold的中文电子版下载地址 word的doc文档转换成htm文件,为什么不行,代码如下 为什么我的程序每次运行时都要选择数据库呢??? 如何在cview中弹出多个对话框,并且在每个对话框上显示不同的图形 急!求教Hook文件操作的问题!
CStdioFile f1;
if( f1.Open( pFileName, CFile::modeCreate
| CFile::modeWrite | CFile::typeText ) )
{
char buf[] = "abcdef";
f1.WriteString(buf);
}
cannot convert parameter from 'char *' to 'LPCTSTR'
pFileName和buf都会提示类似的错误
f1.WriteString((LPCTSTR)buf);
可是用LPCTSTR强制类型转换的时候,编译和链接都没出错,也可以运行,就是数据全部丢失了,这是为什么呢?
if( f1.Open( _T("C:\\test.log"), CFile::modeCreate | CFile::modeWrite | CFile::typeText ) )
{
char buf[] = "abcdef";
f1.WriteString((LPCTSTR)buf);
f1.WriteString(_T("1234"));
}f1.Close();运行结果:1234写进去了,abcdef没有写进去
CStdioFile f1;
if( f1.Open( _T("C:\\test.log"), CFile::modeCreate | CFile::modeWrite | CFile::typeText ) )
{
char buf[] = "abcdef";
f1.WriteString((LPCTSTR)buf);
f1.WriteString(_T("\r\n"));
f1.WriteString(_T("1234"));
}f1.Close();这样的结果是:文件的第一行为空白,第二行1234
改成:TCHAR buf[] = _T("abcdef");你可能用的是UNICODE