我不相信有任何特殊功能.即使标准库的行知识功能也没有:BufRead::read_line记录为仅识别\n和BufRead::lines(源),它们剥离行尾字符,只是为了\n并且\r\n不加区别地调用它所调用的平台.
"平台线结束"实际上是一个类别错误.文件通过网络发送,并从一台计算机复制到另一台计算机.如果您的程序在记事本中编写需要在Windows上打开的文件,那么生成它们的程序是在Windows还是Linux上运行并不重要; 它需要发射\r\n.同样,如果程序正在编写特定的文件格式或实现某种网络协议; 格式或协议应告诉您要使用的行分隔符.如果格式允许,并且没有约定,请选择您喜欢的格式; 一直使用它.
如果你正在阅读行结尾,你应该容忍任何一个,就像BufRead::lines那样.
但是,如果您真的需要,就好像您的输出将被编写得不好的程序读取,该程序需要在不同平台上使用不同的行结尾,您可以使用条件编译属性来实现此效果:
#[cfg(windows)]
const LINE_ENDING: &'static str = "\r\n";
#[cfg(not(windows))]
const LINE_ENDING: &'static str = "\n";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
766 次 |
| 最近记录: |