使用fprintf打印字符串

时间:2012-11-14 06:55:58

标签: c++ stl stdio

我遇到打印字符串的问题,我将其用于调试目的。

我像这样创建字符串:

//checker is int 
std::stringstream buttonx; 
buttonx << "Button" << checker << "_x";

现在我尝试将其打印到我的error.txt文件


FILE * p;
p = fopen ("error.txt","w");
fprintf(p, "%s" , buttonx.str());
fclose(p);

输出结果为:

,æ0

每次都不同。我不确定最新情况是否希望有人可以解释这个错误?

2 个答案:

答案 0 :(得分:7)

fopen是普通的C,无法处理std :: string。您需要输入一个char*,您可以通过在字符串上调用.c_str()来访问,如下所示:

fprintf(p, "%s", buttonx.str().c_str());

答案 1 :(得分:0)

函数fprintf想要一个以空字符结尾的字符串(一个C字符串);你需要c_str()而不是你的:

 buttonx.c_str()