簡體   English   中英

使用fprintf打印字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM