c# - c#中的换行符

标签 c# newline

我写了这段代码来计算文本文件中的字符数:

sr.BaseStream.Position = 0;
sr.DiscardBufferedData();
int Ccount = 0;
while (sr.Peek() != -1)
{
  sr.Read();
  Ccount++;
}

但是在将此代码应用到包含以下内容的文件之后:

1
2
3
4
5
6
7
8
9
0

帐户 = 30 ???? 为什么? 我在我的 Macbook 上的虚拟盒子上使用 Windows Xp 使用的程序:Microsoft Visual Basic 2010。

最佳答案

在 Windows 中,每个新行由两个字符 \r\n 组成。你有 10 行,每行有 1 个可见字符和 2 个新行字符,总共 30 个字符。

如果您在 Mac 或 Unix/Linux 中创建文件,您会得到不同的结果(20 个字符)。因为 Unix 仅使用 \n 而 Mac 仅使用 \r 换行。

您可以使用一些编辑器(例如 Notepad++)来显示换行符,甚至可以在不同模式(DOS/Unix/Mac)之间切换。

关于c# - c#中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16017077/

相关文章:

c# - 如何将从套接字接收到的字节数组转换为 C# 结构

c - 在声明的 C 字符串上添加 CRLF

string - Powershell函数捕获字符串长度而不返回/换行

PHP 换行\n 和\r\n 不工作

c# - Reactive Extensions .NET 3.5 中的 ConcurrentDictionary 在哪里

c# - WPF 在 Closing 事件中隐藏一个窗口防止应用程序终止

c# - 如何在 LINQ 中获取 "remainder"查询(所有非匹配对)并将其收集到列表中

c# - 如何从子对象动态获取父对象

python - 如何删除 python 中的换行符?

c - snprintf() 只读到换行符?