我目前正在尝试读取文件,如下所示:
53**7****\n6**195***\n*98****6*\n8***6***3\n4**8*3**1\n7***2***6\n*6****28*\n***419**5\n****8**79\n
并将其写入屏幕,但使用新行而不是/n。
在 StreamReader.ReadLine () 方法的 msdn 描述中,它说: 行定义为一系列字符,后跟换行符(“\n”)、回车符(“\r”)或回车符后紧跟换行符(“\r\n”)。返回的字符串不包含终止回车符或换行符。如果到达输入流末尾,则返回值为 null。
为什么我的程序不将 \n
解释为新行?
最佳答案
好吧,问题是 ReadLine
的文档正在讨论 '\n'
(单个)字符,而实际上你有一个 "\\n"
两个字符的字符串。
在 C# 中,\
用作转义字符 - 例如,\n
表示 ASCII 值为 10 的字符。但是,文件不是 根据 C# 规则进行解析(这是一件好事!)。由于您的文件没有字面的 10 个字符,因此它们不会被解释为结束行,这是正确的 - ASCII 中的字面翻译将是 (92, 110)。
只需使用Split
(或Replace
),就可以了。基本上,您希望将 "\\n"
替换为 "\n"
(或者更好,Environment.NewLine
)。
关于f# - 为什么 F# 中的 StreamReader.ReadLine () 不读取\n 作为新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33474402/