【问题标题】:Fprintf VS _ftprintffprintf 与 _ftprintf
【发布时间】:2016-02-17 10:26:57
【问题描述】:

两者的输入参数几乎相同:

int _ftprintf( FILE *stream, const _tchar *format [, argument ]...)

int fprintf(FILE *stream, const char *format, ...)

这两种格式的agruments有什么区别? 我应该什么时候使用它们?

【问题讨论】:

  • fprintf 是标准 C,我不知道 _ftprintf
  • 这适用于什么操作系统、什么 API?
  • _ftprintf 是 Visual C(和 C++)特定的“函数”,它实际上是一个宏,根据 _UNICODE_MBCS 宏扩展为 printf 系列中的另一个函数.参考中有一个表格说明它的扩展内容。

标签: c printf filestream


【解决方案1】:

_tprintf_ftprintf 将与 TCHAR 格式字符串一起使用。 TCHAR 只是一个宏,根据是否定义了_UNICODE 宏,它会展开为charwchar_t

所以,基本上,如果你没有定义_UNICODE_ftprintf 将等同于fprintf,否则它将等同于fwprintf

【讨论】:

  • 感谢 Eldar,何时定义 _UNICODE?
  • @ItayAvraham Project Properties -> General -> Project Defaults -> Character Set。如果设置了Use Unicode Character Set,MSBuild 将隐式定义它。
猜你喜欢
  • 2013-04-19
  • 2014-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-11
  • 2018-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多