【发布时间】:2014-11-28 15:46:35
【问题描述】:
我有一个字符串,声明为:
string text = "THIS IS LINE ONE "+(Char)(13)+" this is line 2";
然而,当我写Console.WriteLine(text);时,
输出是:
this is line 2E
为什么会发生这种行为?还是因为我很愚蠢,错过了一些明显的东西?
为什么不打印:
THIS IS LINE ONE [CR] //where the CR is a non printed character
this is line 2
编辑
请注意:这不是“如何添加回车”问题。
【问题讨论】:
-
所以...我们已经确定您在标准控制台上的输出存在问题,必须像这样才能让打印机输出工作,除了您尚未测试它在打印机上的行为或工作方式。 您确定自己确实有问题吗?
-
再次迭代。 这是标准输出的行为方式。如果您不喜欢输出,请更改您写入的文本。如果您不能这样做,因为您只是出于调试目的而这样做,并且打印机的文本必须是这样的,停止使用标准控制台进行测试,使用打印机进行测试。
-
好的,那让我把它拼出来。打印机和控制台可能表现不同。唯一确定的方法是使用实际设备(打印机)进行测试。这不是
Console.WriteLine的问题,也不是实际字符的问题,这是标准控制台行为的“问题”。打印机的行为方式可能相同,也可能不同,控制台的行为对此没有影响。 -
你的程序只是将所有这些字符提供给标准控制台并要求它显示它们,它在换行符方面表现得像这样。打印机的行为可能完全不同。事实上,旧的点阵打印机使用一个字符将头部向下移动一行并继续沿 X 方向移动,而另一个字符则移动到行首,因此您需要两者来获得您想要的想。只有在使用实际打印机进行测试时,您才会知道这一点。
-
根据您提到 OKI Microline 5520 的其他问题。我刚刚找到 manuals365.com/swf/oki/552xugb2_tcm3-46086.html?page=74 这意味着您想要 Char 10 而不是 Char 13。
标签: c# string console char console.writeline