VS2015 现在错误 C4477 "fprintf"

VS2015 now error C4477 "fprintf"

本文关键字:fprintf C4477 错误 VS2015      更新时间:2023-10-16

到目前为止,VS编译我的代码很完美,但现在VS2015给我一个我无法理解的警告。

我代码:

 CString nombre=_T("Stack"), dsc=_T("overflow");
  _ftprintf(file, _T("%s %s);n"), nombre, m_dsc);

和VS2015:

警告C4477 'fwprintf':格式字符串'%s'需要一个参数类型'wchar_t *',但可变参数1的类型'CString'

为什么?为什么我不能用CString代替wchart_t?我想使用CString

提前致谢

乔斯米

_ftprintf(file, _T("%s %s);n"), (LPCTSTR)nombre, (LPCTSTR)dsc);

我更喜欢GetString()而不是c风格的强制转换:

_ftprintf(file, _T("%s %s);n"), nombre.GetString(), dsc.GetString());

我建议考虑使用std::fstream's来处理文本文件

#include <tchar.h>
// printf("%s %d %p", str, i, ptr);
_tprintf_s(_T("%s %d %p"), str, i, ptr);