簡體   English   中英

使用沒有緩沖區變量的 sprintf

[英]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::formatfolly::sformat

在很多情況下,使用stringstream更方便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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