stdio支持

This commit is contained in:
ArchZer0
2026-08-16 16:28:12 +08:00
parent 1f8fa26d73
commit ceb7c3fa44
11 changed files with 249 additions and 0 deletions
+91
View File
@@ -0,0 +1,91 @@
# BetterSTL cin/cout 支持
现在三个核心类都支持标准输入输出:
## BigInteger - 高精度整数
```cpp
#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 - 高精度浮点数
```cpp
#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 - 增强字符串
```cpp
#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("_");
```
## 使用示例
编译和运行演示程序:
```bash
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` 命名空间中。
## 编译链接
在编译你的程序时:
```bash
g++ your_program.cpp -I/path/to/include -L/path/to/lib -lBetterSTL -o your_program
```
或者使用静态库:
```bash
g++ your_program.cpp -I/path/to/include /path/to/libBetterSTL.a -o your_program
```