String 在Rust中,有没有一种方法可以在r中生成文字换行符"E;###使用Windows约定?

String 在Rust中,有没有一种方法可以在r中生成文字换行符"E;###使用Windows约定?,string,rust,newline,heredoc,rawstring,String,Rust,Newline,Heredoc,Rawstring,我在窗户上涂了锈,我发现 r###"abc def"### 结果为字符串abc\ndef。有没有一种简单的方法使它成为abc\r\ndef?还是我必须手动进行替换?自2019年以来,当读取源文件时,Rust编译器将所有CRLF序列转换为LF(请参见),并且无法更改此行为 您可以做什么: 在运行时使用.replace(“\n”,“\r\n”)来创建带有CRLF行终止符的新字符串 使用常规字符串而不是原始字符串文字,并以\r结束您的行,例如。 “abc\r\n def“ 使

我在窗户上涂了锈,我发现

r###"abc
def"###

结果为字符串
abc\ndef
。有没有一种简单的方法使它成为abc\r\ndef?还是我必须手动进行替换?

自2019年以来,当读取源文件时,Rust编译器将所有CRLF序列转换为LF(请参见),并且无法更改此行为

您可以做什么:

  • 在运行时使用
    .replace(“\n”,“\r\n”)
    来创建带有CRLF行终止符的新
    字符串
  • 使用常规字符串而不是原始字符串文字,并以
    \r
    结束您的行,例如。
    “abc\r\n
    def“
    
  • 使用宏包含UTF-8格式的文件,该文件包含带有CRLF行终止符的文本

  • 您的源文件是否确实在该字符串中包含CR LF字符?如何:
    。替换(“\n”,“\r\n”)
    ,并查看@JonasBerlin是的,我确定。如果您迫切需要此
    ”\r'
    ,可以在第一行末尾插入一个字符,以便文件中有两个字符。如果您的编辑器可以执行此操作:-p编译器。这可以防止源代码中不可见的差异改变代码的语义。如前所述,如果需要Windows行结尾,则需要自己翻译它们。