0

正在使用 C# 和 C++ 访问代码中的文件。当文件在记事本中打开时,它看起来像这样(左边一个整数,其余数字是双精度数):

在此处输入图像描述

但是用写字板打开同一个文件时看起来像这样(每个双精度数旁边一个整数):

在此处输入图像描述

为什么它们看起来不一样?

4

4 回答 4

3

它与文件中换行符的编码方式有关。Windows 将换行识别为由两个字符 ( \r\n) 组成,而其他一些操作系统,即基于 Unix 的操作系统,仅使用\nor \r。写字板足够聪明,可以识别这两种换行符类型,但记事本不是。

于 2015-01-06T16:12:52.240 回答
1

因为记事本和写字板使用不同的方式来读出文件,所以这个文件的写入方式显然是不同的......

于 2015-01-06T16:11:54.327 回答
1

因为记事本和 WorkPad 理解 \r\n 不同

于 2015-01-06T16:12:58.180 回答
1

记事本和写字板对“新行”的处理方式不同——一个只接受\n,另一个需要\r\n识别“新行”(有些可以接受\n\r)。

许多其他编辑器也是如此。即,如果您尝试在 Visual Studio 中打开该文件,它可能会询问“是否要将 Unix 新行转换为 Windows 新行”之类的问题。

如果您使用 C# 编写文件,WriteLine而不是手动添加\n或至少使用Envirnment.NewLine将“新行”写入流。

同样,在 C++ 中,如果您必须在记事本或其他需要此类序列的编辑器中打开文件(大多数编辑器/查看器都可以),则可以编写“\r\n”而不仅仅是“\n”。

于 2015-01-06T16:14:06.223 回答