3

我在打印用于调试目的的字符串时遇到问题。

我像这样创建字符串:

//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

每次都不一样。我不确定发生了什么希望有人能解释这个错误?

4

2 回答 2

7

fopen是纯 C 语言,无法处理 std::string。您需要输入 a char*,您可以通过调用.c_str()字符串来访问它,如下所示:

fprintf(p, "%s", buttonx.str().c_str());
于 2012-11-14T06:57:48.353 回答
0

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

 buttonx.c_str()
于 2012-11-14T06:58:14.217 回答