Files
BetterSTL/IO_SUPPORT.md
T
2026-08-16 16:28:12 +08:00

1.9 KiB

BetterSTL cin/cout 支持

现在三个核心类都支持标准输入输出:

BigInteger - 高精度整数

#include <bstl/big_integer.hpp>
#include <iostream>

bstl::BigInteger bi;
std::cout << "Enter a large integer: ";
std::cin >> bi;
std::cout << "You entered: " << bi << std::endl;

支持任意精度的整数输入输出,不受 long long 限制。

BigDecimal - 高精度浮点数

#include <bstl/big_decimal.hpp>
#include <iostream>

bstl::BigDecimal bd;
std::cout << "Enter a decimal number: ";
std::cin >> bd;
std::cout << "You entered: " << bd << std::endl;

支持任意精度的浮点数输入输出,精度不丢失。

String - 增强字符串

#include <bstl/string.hpp>
#include <iostream>

bstl::String str;
std::cout << "Enter a word: ";
std::cin >> str;
std::cout << "You entered: " << str << std::endl;

// 可以使用 Python 风格的方法
std::cout << "Uppercase: " << str.upper() << std::endl;
std::cout << "Split: ";
auto parts = str.split("_");

使用示例

编译和运行演示程序:

cd /home/archzero/C++/BetterSTL
cmake -S . -B out/build -G Ninja
cmake --build out/build

# 运行库测试
ctest --test-dir out/build

# 运行演示(需要在终端交互)
./out/build/IOTests

实现细节

operator<<(输出)

  • BigInteger: 通过 toString() 输出
  • BigDecimal: 通过 toString() 输出
  • String: 通过 str() 输出

operator>>(输入)

  • BigInteger: 读取字符串,创建新对象
  • BigDecimal: 读取字符串,创建新对象
  • String: 读取字符串,创建新对象

所有运算符都定义在 bstl 命名空间中。

编译链接

在编译你的程序时:

g++ your_program.cpp -I/path/to/include -L/path/to/lib -lBetterSTL -o your_program

或者使用静态库:

g++ your_program.cpp -I/path/to/include /path/to/libBetterSTL.a -o your_program