有没有办法强制打印!/ println!使用Windows新行(CR LF)

时间:2016-06-01 02:11:36

标签: rust

我在Windows 10上使用Rust 1.9。在播放一些代码并比较从标准输出中捕获的结果时,我注意到输出使用的是Linux行,结尾为0x0A(10,LF),而不是windows 0x0D 0x0A(13 10, CR LF)。我试过以下:

println!("{} or {}  = {}", a, b, a | b);

print!("{} or {}  = {}\n", a, b, a | b);

有没有办法强制使用Windows行结尾?

1 个答案:

答案 0 :(得分:7)

如果您查看the implementation of println!,那就非常简单了:

macro_rules! println {
    ($fmt:expr) => (print!(concat!($fmt, "\n")));
    ($fmt:expr, $($arg:tt)*) => (print!(concat!($fmt, "\n"), $($arg)*));
}

您可以复制粘贴修改此内容,将\n替换为\r\n

macro_rules! wprintln {
    ($fmt:expr) => (print!(concat!($fmt, "\r\n")));
    ($fmt:expr, $($arg:tt)*) => (print!(concat!($fmt, "\r\n"), $($arg)*));
}