- cstdlib[meta header]
- std[meta namespace]
- function[meta id-type]
- cpp26[meta cpp]
namespace std {
int strfromd(char* s, size_t n, const char* format, double fp);
}- size_t[link /reference/cstddef/size_t.md]
double型の浮動小数点数を文字列に変換する。
C23で<stdlib.h>に追加された関数であり、C++26で<cstdlib>に取り込まれた。
formatは、文字%、アスタリスク*を含まない精度指定 (省略可)、および変換指定子a・A・e・E・f・F・g・Gのいずれか1つだけで構成されること。
std::snprintf(s, n, format, fp)と等価である。
nが十分に大きいと仮定した場合に書き込まれる文字数を、終端のヌル文字を除いて返す。
したがって、ヌル終端された出力が完全に書き込まれたのは、戻り値が非負かつn未満である場合に限られる。
#include <cstdlib>
#include <print>
int main()
{
char buf[32];
std::strfromd(buf, sizeof(buf), "%.2f", 3.14159);
std::println("{}", buf);
}- std::strfromd[color ff0000]
3.14
- C++26
- Clang: 22 [mark noimpl]
- GCC: 16.1 [mark noimpl]
- Visual C++: 2026 Update 2 [mark noimpl]
strfromf:float型を文字列に変換するstrfroml:long double型を文字列に変換するstd::to_chars: 数値を文字列に変換する
- P3348R4 C++26 should refer to C23 not C17
- C++26がC23を参照するようになり、この関数が
<cstdlib>に追加された
- C++26がC23を参照するようになり、この関数が