Demo:数值、随机文本与字节序
展示严格数字转换、精度处理、伪随机显示文本和 64 位字节反转。
1. 示例内容
示例中的关键调用使用中文注释,并与仓库源码、CMake 目标和当前 API 保持一致。
2. 构建与运行
cmake --build build --target sttnet_data_tools --parallel
./build/examples/sttnet_data_tools3. 运行结果
./build/examples/sttnet_data_tools预期:输出端口 8080、非法输入回退值 -1、保留两位的小数、24 字符显示 ID 和字节反转结果。
4. 完整源码
#include <sttnet.h>
#include <cstdint>
#include <iostream>
int main()
{
using namespace stt::data;
// 只有整个输入都合法时,数字转换才会成功。
int port=0;
NumberStringConvertUtil::toInt("8080",port,-1);
std::cout << "port: " << port << '\n';
NumberStringConvertUtil::toInt("8080abc",port,-1);
std::cout << "strict fallback: " << port << '\n';
double latency=2.34567;
PrecisionUtil::getPreciesDouble(latency,2);
std::cout << "rounded latency: " << latency << " ms\n";
// 这里生成严格指定长度的 Base64 字符集伪随机文本。
// 它不是安全 Token,也不一定是可解码的 Base64 数据。
std::string displayId;
RandomUtil::getRandomStr_base64(displayId,24);
std::cout << "display id: " << displayId << '\n';
// NetworkOrderUtil 会原地反转全部 8 个字节。它面向 STTNet 当前 Linux
// 目标使用的 64 位 unsigned long ABI。
unsigned long value=0x0102030405060708UL;
NetworkOrderUtil::htonl_ntohl_64(value);
std::cout << "byte-swapped: 0x" << std::hex << value << std::dec << '\n';
return 0;
}