我正在尝试将字符串生成器保存到文件中,但是它没有换行。 输出应该看起来像
class Program
{
static public void justify(List<string> words, int width)
{
//some code to build the arrays
int ii = 0, jj;
StringBuilder builder = new StringBuilder();
do
{
jj = result[ii];
for(int k = ii; k < jj; k++)
{
builder.Append(words[k] + " ");
}
builder.Append("\n");
ii = jj;
}
while(jj < words.Count);
Console.WriteLine(builder.ToString());
StreamWriter file = new StreamWriter("output.txt");
file.Write(builder.ToString());
file.Close();
}
static void Main(string[] args)
{
string file_extention, file1;
file1 = Console.ReadLine();
file_extention = "C:\\Users\\sayed\\Desktop\\" + file1 + ".txt";
string text = System.IO.File.ReadAllText(@file_extention);
result = text.Split(' ').ToList();
justify(result, 10);
}
}
答案 0 :(得分:5)
那是因为您应该在Windows中将\r\n
用于换行。 \n
是Unix。您应该使用
builder.AppendLine();
这将自动执行。更准确地说,AppendLine()
在非Unix平台上附加一个\r\n
,在Unix平台上附加一个字符串\n
。
请注意,您的文件确实包含\n
,有些编辑器甚至在Windows上也将其解释为换行符。例如,记事本没有。
答案 1 :(得分:1)
替换
builder.Append("\n");
使用
builder.Append(Environment.NewLine);
然后使用notepad ++而不是window的默认文本编辑器打开文件。
我相信记事本会忽略您的\ n字符,因此它们不会呈现。在Windows计算机上,它希望\ r \ n呈现换行符和环境。NewLine将确保您找到正确的换行符。