Visual Studio를 열고 새 프로젝트 만들기를 클릭
빈 프로젝트를 선택하고 다음을 누른다.
새 프로젝트 구성에는 이름과 위치, 솔루션 이름을 설정할 수 있다.
이름과 폴더 설정 후 만들기 클릭
솔루션 탐색기에서 프로젝트 이름을 우클릭해 추가(D) -> 새항목(W)을 누르고 적당한 파일 이름을 입력한다(main.cpp
)
C와 C++은 비슷하면서도 코드가 약간 다른데, 한번 비교해보자.
먼저 C는 Hello World! 를 출력하기 위해 아래의 코드처럼 작성해주면 된다.
문자를 출력하기 위해 printf
함수를 사용하고, 해당 함수를 사용하기 위해 Standard Input/Output(stdio.h
) 헤더 파일을 코드에 include 해준다.
#include <stdio.h>
int main() {
printf("Hello World!");
}
다음은 C++에서 Hello World! 를 출력하기 위한 코드이다.
코드를 살펴보면 C언어와 비슷하게 무언가를 include 해주고, int main() { }
으로 메인함수를 정의해주고 있으며 C++에서는 std::cout
이라는 함수를 통해서 Hello World! 를 출력하고 있는 것을 볼 수 있다.
#include <iostream>
int main() {
std::cout << "Hello World!";
}
#include <iostream>
using namespace std;
int main() {
int a = 5;
cout << "Hello " << "World! " << a;
return 0;
}
위 코드처럼 꺾쇠를 중복해 사용할 수도 있다.
프로그램을 실행하면 Hello World! 5
가 출력된다.
endl
: 다음 줄(엔터)#include <iostream>
using namespace std;
int main() {
cout << "Hello" << endl << endl'
return 0;
}
C언어에는 \n
이 있는 것처럼 C++에는 endl
이라는 개행 문자가 있다. END OF LINE의 약자로, 다음 줄로 넘기는 역할을 한다.
따라서 위 코드를 실행하면 아래와 같은 결과를 볼 수 있다.
Hello
(엔터)
(엔터)
C언어는 무언가를 입력받기 위해서 scanf
라는 함수를 사용하는데, C++에서는 std::cin
이라는 코드를 사용해 문자를 입력받는다.
Standard I/O(입출력) 라이브러리
C++ 표준 라이브러리(standard)의 cout이라는 출력 스트림 객체
std
는 Standard의 약어로, C++ 표준 라이브러리에서 사용되는 네임스페이스를 의미한다.cout
은 console output의 약어로, C++ 표준 라이브러리에서 제공하는 출력 stream 중 하나를 의미한다.동일한 결과를 도출하는 코드임에도 불구하고 C언어는 printf라는 함수로, C++은 cout이라는 출력 스트림을 사용하고 있다.
C언어는 간단한 입출력 작업에 중점을 두고 함수를 사용하며, C++은 객체 지향 프로그래밍 및 고급 기능을 위해 스트림 기반의 I/O를 사용하는 것이다.
객체 지향 프로그래밍은 Object - Oriented Programming(OOP)라 하고 절차 지향 프로그래밍은 Procedural Programming(POP)이라고 한다.
(정리 중 입니다.)
I/O Stream
을 선호하는 이유printf
에는 %d, %s와 같은 형식 지정자를 사용하는데, 잘못된 형식 지정자를 제공하는 경우 발생할 수 있는 런타임 오류를 방지하는데 도움을 준다.printf("long pharse %d long pharse %d", 3); //Forget the number of parameters
int a = 3;
...many lines of code...
printf(" %f", a); // Use the wrong format
scanf("%d", &var1);
scanf(" %c", &var2); // whitespace(공백)
<<
(출력) 및 >>
(입력) 연산자를 정의할 수 있다.printf
, scanf
, etc..)보다 더 빠르다.int main() { }
or int main(void) { }
은 무엇일까?main
함수는 프로그램의 entry pointmain
함수의 이름은 고정되어 있으며, 이름을 변경할 경우 프로그램이 컴파일되지 않음.main
함수를 정의할 때 int
를 사용하는 이유는?main
함수의 반환 자료형은 int
만 허용됨(exit code)int main()
과 int main(void)
의 차이는?int main()
처럼 매개변수를 비워둔 함수 정의를 사용할 때 경고를 출력할 수 있음.#include <iostream>
과 #include "iostream"
의 차이점