#include <iostream>
#include <cstdint>
#include <fmt/core.h>
using namespace std;
int main(int argc, char **argv)
{
cout<<"Expected: ' -10'\n got:'"<<fmt::format("{:>10d}",-10)<<"'\n";
cout<<"Expected: '-000000010'\n got:'"<<fmt::format("{:>010d}",-10)<<"'\n";
cout<<"Expected: ' -10.457'\n got:'"<<fmt::format("{:>10.3f}",-10.456789)<<"'\n";
cout<<"Expected: '-00010.457'\n got:'"<<fmt::format("{:>010.3f}",-10.456789)<<"'\n";
return 0;
}
上面的代码描述了我对格式库所期望的“有用”结果。 但实际输出却不同! 这只是库的一个错误,还是有任何相关原因来支持这个输出呢?
代码在这里:https://godbolt.org/z/YrxMr5x6x 输出取决于库的版本,即使是最新版本也会根据“我的个人喜好”出现故障(但我想你可能会有同感)。
以下是一些输出:
Expected: ' -10'
got:' -10'
Expected: '-000000010'
got:'0000000-10'
Expected: ' -10.457'
got:' -10.457'
Expected: '-00010.457'
got:'000-10.457'
最新版本:
Expected: ' -10'
got:' -10'
Expected: '-000000010'
got:' -10'
Expected: ' -10.457'
got:' -10.457'
Expected: '-00010.457'
got:' -10.457'