콘솔창 띄우기
디버그 헤더 파일에
#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;를 적용하기보다는 필요한 범위 안에서만 사용하는 것이 권장된다.
'개발공부 > C++' 카테고리의 다른 글
[C++] MFC 모달리스 다이얼로그 생성하기 (0) | 2023.09.18 |
---|---|
[C++] MFC Bitmap Image로 버튼 만들기, 클릭시 이미지 전환 (1) | 2023.09.17 |
[C++] MFC CImage 이미지 생성, 저장, 로드, 움직이는 사각형 만들기 (0) | 2023.09.17 |
[C++] MFC 버튼 생성, 에딧컨트롤 생성, 이벤트 연결, 계산기 만들기 (1) | 2023.09.16 |
[C++] MFC 개발환경 설정하기 (0) | 2023.09.15 |