#在线 #方法 #有用 #扫描 #stdin #线程 #评测

dmoj

一个提供在线评测中有用方法的 Rust 包

6 个版本

使用旧的 Rust 2015

0.1.5 2016年11月8日
0.1.4 2016年11月6日
0.1.3 2016年9月27日

#有用中排名17

Download history 8/week @ 2024-05-12 6/week @ 2024-05-19 17/week @ 2024-05-26 20/week @ 2024-06-02 9/week @ 2024-06-09 8/week @ 2024-06-16 8/week @ 2024-06-23 7/week @ 2024-07-07 3/week @ 2024-07-14 41/week @ 2024-07-28

每月下载51

AGPL-3.0

16KB
380

dmoj-rust Travis CI

一个提供在线评测中有用方法的 Rust 包。

使用方法

#[macro_use] extern crate dmoj;

fn main() {
    println!("Hello, World!");
}

提供的宏

print!, println!

此包提供了 print!println! 宏,这些宏覆盖了预导入版本。这些版本大约快10倍,并且完全兼容API,但牺牲了线程安全。

示例

#[macro_use] extern crate dmoj;

fn main() {
    print!("Hello, ");
    println!("World!");
}

flush!

刷新 stdout 缓冲区。

示例

#[macro_use] extern crate dmoj;

use std::thread;
use std::time::Duration;

fn main() {
    print!("Hello,");
    flush!();
    thread::sleep(Duration::from_secs(2));
    println!(" World!");
}

scan!

scan!(T) -> T;
scan!(T1, ..., Tn) -> (T1, ..., Tn);

一个从 stdin 扫描值的宏。目前只支持扫描字符和整数。注意,在扫描整数时,扫描器将继续读取 stdin,直到找到看起来像整数的东西。如果宏用多个类型参数调用,则返回值的元组,否则返回值本身。

示例

#[macro_use] extern crate dmoj;

fn main() {
    // For example, if stdin contains " 2020 \n  +4 test \n   -19xy" then

    print!("{:?}", scan!(u64));      // prints "2020", and
    print!("{:?}", scan!(i16, i16)); // prints "(4, -19)"
    print!("{:?}", scan!(char));     // prints "'x'"
    print!("{:?}", scan!(char));     // prints "'y'"
}

依赖项

~57KB