C++ fprintf只打印第一个字符串

标签 c++ printf

我尝试使用以下代码:

String hi = "hi";
String bye = "bye";
fprintf(fileout, "%d: %s, %s", 10, hi, bye); //fail 
fprintf(fileout, "%d: %s, %s", 10, "hi", "bye");//ok

但是,这无法将 hi bye 写入文本文件。怎么了?

最佳答案

fprintf及相关函数是C函数。

您需要一个“C 字符串”,它是一个以 null 结尾的字符数组(char *char const *),而不是 C++ 字符串( std::string).

fprintf(fileout, "%d: %s, %s", 10, hi.c_str(), bye.c_str());

参见fprintfc_str() .

尽管 C++ 代码通常会使用 C++ I/O functions

关于C++ fprintf只打印第一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21669972/

相关文章:

在 C 中使用 printf 的彩色文本

c - 如何打印大小未知的类型,如 ino_t?

c++ - 在 C++ 中创建具有 x 和 y 最小和最大范围的单链表

C++ 重载 operator= 用于不同的 rhs 类型,在构造时

c++ - 在计算着色器中计算帧缓冲区的颜色直方图

c++ - 我应该多认真对待 Valgrind 和小内存泄漏(比方说 < 100 字节)?

c - 为什么我在printf语句中没有添加 `%`却输出了 `\n`?

c++ - 抛出 'std::string' 实例后调用终止

c - 无法在线程内用 C 打印?

c - 如何避免有关类型的 printf 警告