printf 和 scanf 到底有多少种变体?

Del*_*ani 5 c

printfC 中的和有如此多不同的版本scanf,这让我忍不住笑了。开始吧:

  • printf:原始实现;然后使用format这些值作为参数
  • fprintf: 相同,但FILE之前需要一个指针format
  • sprintfchar:之前获取一个指针format
  • snprintf:与上面相同,但为了缓冲区溢出安全而限制写入的大小
  • vprintf: 类似printf,但需要一个va_list有价值的参数
  • vfprintf:va_list相当于fprintf
  • vsprintf:va_list相当于sprintf
  • vsnprintf:va_list相当于snprintf
  • asprintf: 取一个char **beforeformat并在指针上分配内存
  • vasprintf:与上面相同,但使用va_list
  • scanf:读format入其后的参数stdin
  • fscanfFILE:之前获取一个指针format,然后从中读取
  • sscanfchar:之前获取一个指针format,然后从中读取
  • vscanf:va_list函数类似于scanf
  • vfscanf:va_list函数类似于fscanf
  • vsscanf:va_list函数类似于sscanf

感谢dreamlax,与以下人员合作wchar_t

  • wprintf:原始实现使用了所有wchar_t地方char *
  • fwprintfFILE:之前写入指针format,使用wchar_t
  • swprintfchar:之前写入指针format,使用wchar_t
  • vwprintf: 写入stdin,采用 ava_list而不是普通参数
  • vfwprintf:写入FILE指针,采用 ava_list而不是普通参数
  • vswprintf:写入char指针,采用 ava_list而不是普通参数

还有吗?

dre*_*lax 0

您错过了所有在wchar_t.