[英]Print a string with fprintf
我遇到打印字符串的問題,我將其用於調試目的。
我像這樣創建字符串:
//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
它每次都不同。 我不確定最新情況是否有人可以解釋這個錯誤?
fopen
是普通的C,無法處理std :: string。 您需要輸入一個char*
,您可以通過在字符串上調用.c_str()
來訪問它,如下所示:
fprintf(p, "%s", buttonx.str().c_str());
函數fprintf想要一個以空字符結尾的字符串(一個C字符串); 你需要c_str()而不是你的:
buttonx.c_str()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.