Visual Studio 2010에서 콘솔의 출력을보고 있습니까?


163

일부 출력 ( Console.WriteLine("...");)이 있는 간단한 C # 프로그램을 작성 중 입니다. 문제는 실행할 때마다 출력 창에서 프로그램의 출력을 볼 수 없다는 것입니다.

"프로그램 출력"태그가 이미 체크되어 있고 이미 모든 출력을 중간 창으로 리디렉션했지만 아무 소용이 없습니다.

프로그램 출력을 볼 수있게하려면 어떻게합니까?

문제는 내 코드에 있다고 생각하지 않습니다. 문자열을 출력하고 "ala hello world"라는 readline 간단한 프로그램을 실행하려고 시도했지만 여전히 출력을 볼 수 없습니다. 문제는 잘못된 위치에서 출력을 찾거나 Visual Studio가 작동하지 않는 것입니다.

debug.write방법은 작동하지 않습니다.

를 사용하면 debug.Write이전에는 작동하지 않았지만 모두 작동합니다. 다시 시작하기 전에 문제가 발생했거나 휴식을 취하기 만하면됩니다. 유용한 의견에 감사드립니다 =)


7
Visual Studio가 콘솔 창을 덮고 있습니다. 다른 모니터로 옮기십시오.
Hans Passant

답변:


195

System.Diagnostics.Debug.Write또는 System.Runtime.InteropServices방법을 사용 하여 출력 창에 메시지를 쓸 수 있습니다 .


10
System.Diagnostics.Debug.Write (OP에 네임 스페이스가없는 경우)
jonsca

4
사실 아, 난 그냥 :) 제어 + 기간을 hiting에 사용에있어
리처드 Adnams

jonsca : 네임 스페이스가 있는데 왜 console.writeline을 사용할 수 있습니까? 테스트를 위해서뿐만 아니라 콘솔에 프로그램을 쓰려고합니까?
r3x

2
응용 프로그램이 콘솔 응용 프로그램 인 경우 console.writeline을 사용하여 콘솔 창에 인쇄하거나 응용 프로그램이 Windows 양식 응용 프로그램 인 경우 debug.write를 사용할 수 있습니다. 자세한 내용은 social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/…를
Richard Adnams

1
흥미로운 알고하지 않았고, 내 응용 프로그램이 윈도우 앱을 형성입니다 네,하지만 난 debug.Write 방법 같은 문제를 사용하여 시도, 그것은 컴파일 및 모든 복숭아하지만 출력 어디서나 볼 수 없습니다입니다
R3X

50

확인해야 할 몇 가지 사항은 다음과 같습니다.

  1. 의 경우 console.Write/WriteLine앱은 콘솔 애플리케이션이어야합니다. (솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 응용 프로그램 탭에서 " 출력 유형 "콤보를 확인하십시오. " 콘솔 응용 프로그램 " 이어야합니다 (실제로 Windows 응용 프로그램이나 클래스 라이브러리가 필요한 경우 을 얻기 위해 이것을 콘솔 앱으로 변경하지 마십시오 Console.WriteLine.

  2. System.Diagnostics.Debug.WriteLine출력 창에 쓰는 데 사용할 수 있습니다 (VS에서 출력 창을 표시하고 View | Output을 얻습니다 ). 이러한 쓰기는 DEBUG 조건이 정의 된 빌드에서만 발생합니다 (기본적으로 디버그 빌드는 이것을 정의하고, 릴리스 빌드는하지 않습니다)

  3. 당신은 사용할 수 있습니다 System.Diagnostics.Trace.Writeline당신은 구성 "청취자"비 디버그 빌드에 쓸 수 있도록하려면. (기본적으로 Visual Studio에서와 마찬가지로 출력 창에 씁니다 Debug.Writeline)


2
출력을 보지 못했지만 Ctrl + Shift + F5 대신 디버그 모드 (F5)에서 프로그램을 실행해야한다는 것을 깨달았습니다. 감사!
Travis Heeter 2016 년

System.Diagnostics.Trace.Writeline이 작동하지 않는 것 같습니다.이를 위해 구성해야 할 다른 것이 있습니까?
트래비스 Heeter

1
«1»— 허위 진술. 모노는 모든 응용 프로그램에 대한 출력을 잘 보여줍니다. «2»— ofc. 문제는 메소드가 터미널로도 출력하지 않는다는 것입니다. 따라서 IDE가 없으면 PC에서 앱을 디버깅 할 수 없습니다.
Hi-Angel

34

Console.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
    }
}

또는 마지막 줄에 중단 점을 추가하기 만하면됩니다.


2
Console.ReadLine은 Enter 키를 눌러 Read가 표준 키를 가져 오는 곳을 계속해야합니다.
Richard Adnams

그것의 Windows 양식 응용 프로그램 및 debug.write 또는 console.writeline 메소드가 작동하는 것 같습니다
r3x

흠, 왜 Windows Form 앱에서 콘솔로 출력합니까? 대신 양식이나 dialgbox에 출력하는 것이 좋습니다. 아니면 콘솔 응용 프로그램 ... 만들기
빈센트 Vancalbergh

이미 나에게 지적했다, 그것은 내 부분에 단지 바보 같은 실수, 여전히 머리에 감사합니다 =)
r3x

Console.Read ()는 콘솔 창에 포커스를 두어 VS 앞에 나타납니다. Console.Write () 뒤에 중단 점을 넣으면 콘솔 창에 출력이 표시되지만 포커스가 없으므로 표시되지 않을 수 있습니다.
Nigel

21

대신 Ctrl+ F5를 눌러 프로그램을 실행하십시오 F5.


1
Ctrl + F5는 디버깅하지 않고 응용 프로그램을 시작하여 출력 창에 아무것도 표시되지 않습니다.
Richard Adnams 2016 년

6
이것은 나를 위해 일했다. 프로그램이 무엇을 출력하고 있는지보고 싶었지만 콘솔 출력은 표시되지 않았습니다. 이로 인해 실행 후 콘솔 창을 열어 두어 출력을 볼 수있었습니다.
davenpcj

+1, 이것은 실제로 디버깅하고 싶지 않다면 콘솔입니다 (콘솔을 보여주고 출력을 읽을 수 있습니다).
mlvljr

8

System.Diagnostics.Debug.WriteLine()작동하지만 출력을 위해 올바른 위치를 찾아야합니다. Visual Studio 2010의 메뉴 표시 줄에서 디버그 -> Windows- > 출력을 클릭하십시오 . 이제 오류 목록 옆에 도킹 된 화면 하단에 출력 탭이 있어야합니다. 그것을 클릭하고 드롭 다운 목록에서 디버그 스트림의 출력을 표시하는지 다시 확인하십시오.

추신 : 출력 창을 새로 설치하면 표시되지만 기억이 나지 않습니다. 그렇지 않은 경우 또는 실수로 닫은 경우 다음 지침을 따르십시오.


0

Windows 콘솔을 열어 놓고 표준 출력 스트림 cout이 아닌 다른 출력 방법을 사용하지 않으려면 프로젝트 이름-> 속성-> 링커-> 시스템으로 이동하십시오.

거기에 있으면 SubSytem 탭을 선택하고 콘솔 (/ SUBSYSTEM : CONSOLE)을 표시하십시오. 이 작업을 완료 한 후에는 컴파일 할 때마다 Ctrl + F5 (디버깅하지 않고 시작)를 사용하면 콘솔이 열린 상태로 유지됩니다. :)


질문에서와 같이 C #이 아니라 C ++에 적용 할 수 있다고 생각합니다.
Dmitry Fedorkov

0

나는 어떤 이유로이 문제에 자주 부딪치며이 솔루션이 언급되지 않은 이유를 알 수 없습니다.

보기출력을 클릭하십시오 (또는 CtrlW> O를 길게 누르십시오).

그러면 오류 목록 , 로컬감시 창이 있는 곳에 콘솔 출력이 나타납니다 .

참고 : Visual Studio 2015를 사용하고 있습니다.


언급 한 출력 창에는로드중인 어셈블리, 스레드 시작 및 중지 등 많은 관련 줄이 있기 때문에 디버거에서 생성 된 것처럼 보입니다. 이것은 콘솔 출력과 다릅니다.
PeterVermont

0

Visual Studio 자체가 콘솔 창을 덮고 있으므로 서로 그려지는 Visual Studio 창을 최소화하십시오.


-1

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

코드가 문제를 해결하는 방법에 대한 설명을 추가하십시오.
Koopakiller

-4

두 개의 작은 메소드를 작성할 수 있습니다. 하나는 프로그램 시작시 호출되고 다른 하나는 종료시 호출 될 수 있습니다. 마지막 쓰기 행 이후에 프로그램이 닫히지 않도록 Console.Read ()를 사용할 수도 있습니다.

이 방법으로 기능이 언제 실행되고 언제 프로그램이 존재하는지 확인할 수 있습니다.

startProgram()
{
     Console.WriteLine("-------Program starts--------");
     Console.Read();
}


endProgram()
{
    Console.WriteLine("-------Program Ends--------");
    Console.Read();
}

Console.Read () 가능성이 이미 언급 되었으므로이 답변이 어떻게 질문에 새로운 정보를 제공하는지 알 수 없습니다.
ForceMagic
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.