String 在C+;中使用字符串^+;

String 在C+;中使用字符串^+;,string,visual-c++,newline,line-breaks,managed-c++,String,Visual C++,Newline,Line Breaks,Managed C++,我正在写一个程序,你可以输入文本并输出一个文本文件 我有这个: int _tmain(int argc, _TCHAR* argv[]) { String^ fileName = "registry.txt"; String^ out; StreamWriter^ sw = gcnew StreamWriter(fileName); out = "hi"; out = out + "\n how you

我正在写一个程序,你可以输入文本并输出一个文本文件

我有这个:

int _tmain(int argc, _TCHAR* argv[])
{
    String^ fileName = "registry.txt";
    String^ out;

    StreamWriter^ sw = gcnew StreamWriter(fileName);

    out = "hi";
    out = out + "\n how you doing?";

    sw->WriteLine(out);

    sw->Close();
}
基本上我想要这个:

hi
how you doing?
但我得到的是:

hi how you doing?

如何修复它?

使用静态数据成员
Environment::NewLine

比如说

out = out + Environment::NewLine + " how you doing?";
或者,您可以显式指定转义控件符号“\r”以及Windows中使用的“\n”来分隔行

out = out + "\r\n how you doing?";
下面是使用这两种方法的示例

#include "stdafx.h"

using namespace System;
using namespace System::IO;

int main(array<System::String ^> ^args)
{
    String ^fileName( "Data.txt" );
    String^ out;

    StreamWriter^ sw = gcnew StreamWriter( fileName );

    out = "hi";
    out = out + "\r\n how you doing?";

    sw->WriteLine(out);

    out = "hi";
    out = out + Environment::NewLine + " how you doing?";

    sw->WriteLine(out);

    sw->Close();

    return 0;
}

这是管理C++。请使用适当的语言标记。这是C++-CLI吗?如果是,请将其标记为。可能的副本
hi
 how you doing?
hi
 how you doing?