我遇到打印字符串的问题,我将其用于调试目的。
我像这样创建字符串:
//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
每次都不同。我不确定最新情况是否希望有人可以解释这个错误?
答案 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()