我在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);
Run Code Online (Sandbox Code Playgroud)
有没有办法强制Windows行结束?
如果你查看实现println!
,它非常简单:
macro_rules! println {
($fmt:expr) => (print!(concat!($fmt, "\n")));
($fmt:expr, $($arg:tt)*) => (print!(concat!($fmt, "\n"), $($arg)*));
}
Run Code Online (Sandbox Code Playgroud)
您可以复制 - 粘贴 - 修改此替换\n
为\r\n
:
macro_rules! wprintln {
($fmt:expr) => (print!(concat!($fmt, "\r\n")));
($fmt:expr, $($arg:tt)*) => (print!(concat!($fmt, "\r\n"), $($arg)*));
}
Run Code Online (Sandbox Code Playgroud)