對於聲明爲char * 輸出參數的任何函數,是否有指定std :: string的「char」部分的方法作爲函數的輸出?如何使用std :: string作爲char *輸出參數
我開始:
// EDIT: ADDED THESE TWO LINES FOR CLARITY
sprintf(buf, "top -n 1 -p %s" , commaSeparatedListOfPIDs.c_str());
fp = popen(buf, "r");
std::string replyStr;
char reply[100];
rc = scanf(fp, "%s", reply);
replyStr = reply;
,但似乎有點,好,笨拙。
那麼,有沒有辦法說:
rc = scanf(fp, "%s", &replyStr.c_str());
或類似的東西?
謝謝!
[std :: string :: operator \ [\]的結果的地址是否指向可寫,nul結尾的緩衝區?](http://stackoverflow.com/questions/9728450/does stdstringoperator-address-of-the-stdstringoperator-point-to-a-writable -n) – ildjarn 2012-04-25 23:23:36
我看到我錯過了一個重要的觀點,fd是來自popen()。 – 2012-04-26 00:09:26