Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么不';这些字符串是否显示在单独的行中?_C#_String - Fatal编程技术网

C# 为什么不';这些字符串是否显示在单独的行中?

C# 为什么不';这些字符串是否显示在单独的行中?,c#,string,C#,String,将person的内容写入文件中 名字:Abcd 第二名称:Tsfsdfs 为此,我编写了一个示例应用程序 namespace BinaryStream { class Program { static void Main(string[] args) { StreamWriter binWriter = new StreamWriter(@"c:\happybirthday.txt"); string

将person的内容写入文件中

名字:Abcd

第二名称:Tsfsdfs

为此,我编写了一个示例应用程序

namespace BinaryStream
{
    class Program
    {
        static void Main(string[] args)
        {
            StreamWriter binWriter = new StreamWriter(@"c:\happybirthday.txt");
            string name = "Sachin";
            string secondname = "tendulkar";
            string wishes = "happy birthday";

            string firstname = string.Format("FirstName: {0} \n", name);
            binWriter.Write(firstname);
            string sn = string.Format("SecondName: {0} \n", secondname);
            binWriter.Write(sn);
            binWriter.Close();          
        }
    }
}
如果我打开记事本中的内容,则字符串不会显示在下一行中
这是什么原因?格式部分正确吗?

您需要使用WriteLine,而不是Write。Write不会在行尾放置换行符\cr。在文本中放置\n仅放置换行符,而不放置换行符。

新行是windows中的
\n\r
。但是有些程序足够智能,只需理解
\n
。其他字符,如记事本,则不是。

您可能会发现,您需要回车符(CR)和换行符(LF)的组合,而不仅仅是LF


因此-在代码中,将\n替换为\r\n

。首先,您创建的是二进制文件,而不是文本文件。这可能是一个令人困惑的记事本

此外,在C#中\n仅表示LF,您必须使用\r\n(CR-LF)

写下这句话:

string[] lines = {"FirstName: Abcd", "SecondName: Tsfsdfs"};
System.IO.File.WriteAllLines(@"c:\happybirthday.txt", lines);

您需要回车和换行。你只有一个换行。将您的\n替换为\r\n,您将在记事本中正确地看到它。

基本上,使用
环境而不是字符串转义字符。换行符实际上是\r\n,而不是\r\n。这确实有区别。他试图把断线放在绳子上。(尽管WriteLine是一种更好的方法…)实际上缺少的是回车(
\r
);换行符是以他的格式字符串读取的。此外,他会看到没有写字板的换行符,而不是notepad@payo-这是因为写字板有代码用cr/lf替换独立lf,而记事本没有。@MystereMan它是如何做到的是另一个问题,在旁注中,您如何知道它实际上是注入的\r,并且不只是充分地呈现\n?哪一个是正确的\r\n或\n\r。正如john所说的,Windows中的换行符应该是\n\r它是\r\n-正如这里所讨论的:这不是C的事情,它与程序读取文件有关。记事本需要\r\n,winword处理\r\n或\r\n很好,就像许多其他程序一样。