[英]Using sprintf without a buffer variable
有沒有辦法在沒有預定義變量的情況下使用sprintf()
?
代替:
char buffer[80];
sprintf(buffer, "%d",i );
myfunc(buffer);
我想使用:
myfunc(stringformat("%d",i));
寫作C++
,表示沒有 OOP 的類 C 函數。
您是否一定需要使用與printf/sprintf
相同的格式規則? 如果是這樣,則沒有標准庫 function 可以做到這一點,您可能需要在后台使用snprint
編寫自己的(在大型字符串的邊緣情況下,您可能需要迭代越來越大的緩沖區大小或僅限制支持的最大值輸出大小)。
如果您需要類似但格式不同的東西 - 最早出現在標准庫中的是 C++20: std::format 。 還有標准庫的替代品,例如boost::format 、 folly::sformat 。
在很多情況下,使用stringstream
更方便。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.