소연의_개발일지
article thumbnail

콘솔창 띄우기

디버그 헤더 파일에 

#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console")

을 작성해 주면 된다.

 

 

이렇게 작성해 주자

#ifdef _DEBUG
#define new DEBUG_NEW
#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console")
#endif

/Debuf나 Release모드 상관없이 콘솔을 실행하고 싶으면 #ifdef, #endif  지우고 #pragma ~ 만 써주면 된다.


 특정 변수의 값을 콘솔창에 출력

아래와 같이 함수 위에 추가해 준다. 파일 선언부에 작성해 줘도 됨

#include <iostream> //cout으로 출력하기 위해

 

적용예시

#include <iostream>
void CMFCstartDlg::OnBnClickedTest()
{
	UpdateData(TRUE);
	int nSum = 0;
	for (int i = 0; i < m_nNum; i++) {
		std::cout << i << std::endl;
		nSum += i;
	}
	
	m_nNum = nSum;
	UpdateData(false);

}

출력 결과


using nameplace std 사용

#include <iostream>

using namespace std;

 

std에는 cout, cin, endl 등 자주 쓰이는 함수들이 정의되어 있다. 

그리고 using std::cout; 이런 식으로도 사용하는데 std에 있는 특정 함수인 cout를 사용하겠다고 선언을 하는 것이다.

 

using namespace std; 또는 using std::cout라고 선언을 하지 않으면 범위 지정 연산자(::)를 사용해서 std::cout이런 식으로 표기를 해야 하지만 using namesapce std; 또는 using std:cout라고 선언을 하면 cout << "Hello World!"; 라고 쓸 수 있다.

 

c에서 stdio.h 라는 헤더 파일을 사용하는 것과 달리 c++에서는 <iostream>을 사용한다.

또 using namespace std;를 해줘야 여러 가지 함수를 올바르게 사용할 수 있는데 이는 c와 달리 c++은 클래스로 이루어져 있어 그 중에 std라는 클래스를 사용하는 것을 명시하기 위해 설정해 주는 것이다. 

 

문자열 출력은 c에서 printf이고 c++에서는 cout이다. c++에서 이것을 사용하기 위해서 std::cout라고 일일히 써야 하지만 번거로움을 없애기 위해서 using namespace std;라고 설정해 준다. 그러므로 std라는 클래스 안에 잇는 cout나 cin을 사용할 수 있다. 

 

using nameplace std 사용 전 예제

#include <iostream>

int main() {
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

using nameplace std 사용 후 예제

#include <iostream>
using namespace std;

int main() {
    cout << "Hello, World!" << endl;
    return 0;
}

위의 예제에서 볼 수 있듯이, using namespace std;를 사용하면 cout나 endl 앞에 std::를 붙이지 않아도 된다.


주의할 점

큰 프로젝트나 여러 라이브러리를 사용하는 경우, 네임스페이스 충돌의 위험이 있으므로 파일 전체에 using namespace std;를 적용하기보다는 필요한 범위 안에서만 사용하는 것이 권장된다.
profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!