C# 看到控制台';在VisualStudio2010中的输出?
我正在编写一个带有一些输出的简单C程序(C# 看到控制台';在VisualStudio2010中的输出?,c#,visual-studio-2010,visual-studio,C#,Visual Studio 2010,Visual Studio,我正在编写一个带有一些输出的简单C程序(Console.WriteLine(“…”);)。问题是,每次运行它时,我都无法在输出窗口中看到程序的输出 “program output”标签已经被选中,我已经将所有输出重定向到中间窗口,但没有结果 我如何能够看到程序的输出 我认为问题不在于我的代码。我试着运行一个简单的程序,只输出一个字符串和一行“alahelloworld”,但仍然看不到任何输出。问题要么是我在错误的位置查找输出,要么是VisualStudio执行了操作 debug.write方法也
Console.WriteLine(“…”);
)。问题是,每次运行它时,我都无法在输出窗口中看到程序的输出
“program output”标签已经被选中,我已经将所有输出重定向到中间窗口,但没有结果
我如何能够看到程序的输出
我认为问题不在于我的代码。我试着运行一个简单的程序,只输出一个字符串和一行“alahelloworld”,但仍然看不到任何输出。问题要么是我在错误的位置查找输出,要么是VisualStudio执行了操作
debug.write
方法也不起作用
使用debug.Write
,这一切都可以正常工作,尽管以前没有。要么在我重新开始之前我出了什么问题,要么我只是需要休息一下,不管怎样,现在一切都好了。感谢大家提供的有用评论=)您可以使用或System.Runtime.InteropServices
方法将消息写入输出窗口。添加控制台.Read()程式码>在程式结束时。它将防止应用程序关闭,您可以通过这种方式查看其输出
这是我刚刚挖掘的一个控制台应用程序,它在处理之后但在退出之前停止:
class Program
{
static void Main(string[] args)
{
DummyObjectList dol = new DummyObjectList(2);
dol.Add(new DummyObject("test1", (Decimal)25.36));
dol.Add(new DummyObject("test2", (Decimal)0.698));
XmlSerializer dolxs = new XmlSerializer(typeof(DummyObjectList));
dolxs.Serialize(Console.Out, dol);
Console.WriteLine(string.Empty);
Console.WriteLine(string.Empty);
List<DummyObject> dolist = new List<DummyObject>(2);
dolist.Add(new DummyObject("test1", (Decimal)25.36));
dolist.Add(new DummyObject("test2", (Decimal)0.698));
XmlSerializer dolistxs = new XmlSerializer(typeof(List<DummyObject>));
dolistxs.Serialize(Console.Out, dolist);
Console.Read(); // <--- Right here
}
}
类程序
{
静态void Main(字符串[]参数)
{
DummyObjectList dol=新的DummyObjectList(2);
dol.Add(新的DummyObject(“test1”(十进制)25.36));
dol.Add(新的DummyObject(“test2”,(十进制)0.698));
XmlSerializer dolxs=新的XmlSerializer(typeof(DummyObjectList));
序列化(Console.Out,dol);
Console.WriteLine(string.Empty);
Console.WriteLine(string.Empty);
列表列表=新列表(2);
添加(新的DummyObject(“test1”(十进制)25.36));
添加(新的DummyObject(“test2”,(十进制)0.698));
XmlSerializer dolistxs=新的XmlSerializer(typeof(List));
序列化(Console.Out,dolist);
Console.Read();//按Ctrl+F5来运行程序,而不是按F5。以下是一些需要检查的内容:
对于console.Write/WriteLine
,您的应用程序必须是一个控制台应用程序。(右键单击解决方案资源管理器中的项目,选择属性,然后查看应用程序选项卡中的“输出类型”组合框——应该是“控制台应用程序”(注意,如果您确实需要windows应用程序或类库,请不要仅为了获取控制台.WriteLine
)而将其更改为Console应用程序)
您可以使用System.Diagnostics.Debug.WriteLine
写入输出窗口(要在VS中显示输出窗口,请转到视图|输出),请注意,这些写入只会发生在定义了调试条件的生成中(默认情况下,调试生成定义此条件,而发布生成不定义此条件)
如果希望能够在非调试版本中写入可配置的“侦听器”,可以使用System.Diagnostics.Trace.Writeline
。(默认情况下,这会写入Visual Studio中的输出窗口,就像debug.Writeline
)
System.Diagnostics.Debug.WriteLine()
可以工作,但您必须在正确的位置查找输出。在Visual Studio 2010中,在菜单栏上,单击“调试”->“窗口”->“输出”。现在,在与错误列表相邻的屏幕底部,应该有一个“输出”选项卡。单击该选项卡,然后在下拉列表中仔细检查是否显示调试流的输出
备注:我想新安装时会显示输出窗口,但我记不起来了。如果没有,或者您意外关闭了它,请按照以下说明操作。您可以创建两个小方法,一个可以在程序开始时调用,另一个可以在程序结束时调用。您也可以使用Console.Read(),这样程序就不会在最后一行写入后关闭
通过这种方式,您可以确定何时执行功能以及程序何时存在
startProgram()
{
Console.WriteLine("-------Program starts--------");
Console.Read();
}
endProgram()
{
Console.WriteLine("-------Program Ends--------");
Console.Read();
}
要保持windows控制台打开,并且不使用标准输出流以外的其他输出方法,请转到项目名称->属性->链接器->系统
在那里,选择SUBSYSTEM选项卡并标记Console(/SUBSYSTEM:Console)。完成此操作后,无论何时要编译,都可以使用Ctrl+F5(启动而不调试),控制台将保持打开状态。出于某种原因,我经常遇到此问题,我不明白为什么没有提到此解决方案:
单击查看→ 输出(或按住Ctrl键并点击W>O)
然后,控制台输出将出现在错误列表、局部变量和监视窗口所在的位置
注意:我正在使用Visual Studio 2015。在Program.cs中,介于:
static int Main(string[] agrs)
{
在代码的其余部分,添加:
#if DEBUG
int rtn = Main2(args);
Console.WriteLine("return " + rtn);
Console.WriteLine("ENTER to continue.");
Console.Read();
return rtn;
}
static int Main2(string[] args)
{
#endif
Visual Studio本身覆盖了控制台窗口,请尝试最小化Visual Studio窗口,因为它们相互重叠。System.Diagnostics.Debug.Write(如果OP没有名称空间)啊,是的,我只是习惯于点击控制+句点:)jonsca:我有一个名称空间,为什么我可以只使用console.writeline,我希望我的程序写入控制台,这不仅仅是出于测试原因??如果你的应用程序是控制台应用程序,你可以使用console.writeline打印到控制台窗口,或者如果你的应用程序是windows窗体应用程序,你可以使用debug.write。检查此链接以了解更多信息有趣的是,我不知道,是的,我的应用程序是一个windows窗体应用程序,但我没有尝试使用debug.Write方法。同样的问题,它可以编译,但我无法在任何地方看到输出。Console.ReadLine也可以工作。您只需按enter键继续,因为Read使用任何标准键。这是一个windows窗体应用程序,debug.write或console.writeline方法似乎有效。嗯,为什么要输出到