#io #cpp #cin #cout

cinner

C++风格的cin和cout标准输入输出

3个版本

0.1.2 2022年12月14日
0.1.1 2022年11月30日
0.1.0 2022年11月29日

80#cpp

每月41次 下载
file_filler 中使用

MIT 许可证

4KB

Cinner(发音为“Sinner”)是一个用于以C++风格编写I/O操作的实用工具

它具有与C++相似的cincout样式



为什么?

  • 因为我厌倦了一直写 std::io::stdin().read_line(&mut holder).trim().parse::<T>)println!("{}", <variable>)

  • 因为我没有找到任何其他库能够做到这一点

  • 因为我没有别的事情可做

  • 因为 我是一名C++程序员 我喜欢C++风格

此外,我想学习更多“高级”的Rust lmao

我学到了

  • 使用traits进行Operator overloading(我仍然不确定我是否做对了)

  • .trim()的重要性(我在第一个版本中忘记添加它,并且花费了>5小时来找到错误)

  • generic functions中使用trait bounds

  • Variadics(它们太酷了)

  • 将crate发布到crates.io

用法

  • cinner = "<version-no>" 添加到您的 Cargo.toml 文件中

您可以使用

use cinner::{cin, cout};

fn main(){
    let mut i = 0;
    let _ = cin >> &mut i;
    let _ = cout << i << "\n";
}

fn main(){
    let mut holder = String::new();
    let i = std::io::stdin().read_line(&mut holder).trim().parse::<i32>().unwrap();
    println!("{}", i);
}

它也是递归的,所以您可以这样做

use cinner::{cin, cout};

fn main(){
    let mut i = 0;
    let mut j = 0_f32;
    let _ = cin >> &mut i >> &mut j;
    let _ = cout << i << "\n";
}

如果您有任何建议,请 DCDA

更新

  • Cinner现在支持“endl”功能

© 2022 Sarad (Chronos Ltd.)

无运行时依赖