2024. 3. 8. 10:23ㆍC++공부하기
C++을 공부해보려 한다
게임 개발에 유니티같은 경우엔 C#을 쓰지만
다이렉트X나 언리얼, 또는 다른 개발을 하더라도
다른 언어를 배워두는 것은 좋은 것이다
오래전에 독학으로 C++을 찍먹 해본 적이 있었는데
기억상으로는 거의 다 까먹었으나
오랜만에 배우려고 찾아보니 꽤 익숙한 맛인 것 같기도 하다
옛날이야기는 이쯤 하고
기본적인 파트를 공부해 보자
입출력 하기
아무 코드나 입출력을 넣어서 싸보자
#include <iostream>
int main() {
char arr[100];
std::cout << "what's you name?\n";
std::cin >> arr;
std::cout << "hi" << " " << arr;
return 0;
}
우선 C++은 언뜻 보면 C언어와 유사한 점이 많다
#include라던지, int main() 함수라던지...
물론 C언어에서 쓰던 scanf같은 함수들을 그대로 쓸 수 있다
#include <iostream>
위와 같이 #include를 통해 헤더파일을 불러와 필요한 함수와 각종 기능들을 쓸 수 있게 된다
이 줄은 C++코드에서 무조건적으로 적어야 하는 필수코드이다
C언어에 printf, js에 console.log가 있다면
C++ 에는 cout이 있다
C + OUT(put)으로 이해하면 된다
std::cin >> arr;
를 통해 이름에 해당하는 문자 배열을 입력받고
std::cout << "hi" << " " << arr;
를 통해 입력받은 문자 배열을 출력해 준다
"\n" 이 친구는 이스케이프 문자라는 친구로
문자열 내에서 줄 바꿈을 해준다
결과는 이러하다
그런데 cout 앞에 std::라는 식별자가 오는데
뭔가 계속 반복적으로 써야 하고 귀찮다
일반적으로는 이 std:: 라는 녀석을 쓰지 않고 cout, cin을 쓰게 되면 오류가 발생한다
그래서 메인함수 위에
using namespcae std;
위처럼 써준다면 이제 더 이상 cin, cout 앞에 있는 std를 지워도 오류가 발생하지 않는다
근데 어지간하면 std::를 쓰는 것이 나중에 심화개발을 할 때 좋다
그리고 std 네임스페이스를 불러왔다면 << endl으로 줄 바꿈이 가능하다
cout << "what's you name?" << endl;
이러면 \n을 쓰지 않아도 출력 끝에 줄 바꿈을 실행해 준다
( '\n' 은 이스케이프 문자중 개행 문자로, 출력문의 줄을 한칸 내려준다 )
그러나 실행속도가 \n보다 느리기 때문에 최적화적인 측면에서는 이스케이프 문자를 쓰는 게 낫다
또 다른 코드를 짜보자
이름과 나이를 공백한칸을 두고 입력받고 싶다
그렇다면
cin >> name >> age;
위와 같이 쓸 수 있다. 저렇게 하면 알아서 공백을 두고 따로들어간다
전체 코드를 보자면 이렇게 생겼고
#include
using namespace std;
int main() {
char name[100];
int age;
cout << "이름과 나이 :" << endl;
cin >> name >> age;
cout << "이름 : " << name << "\n나이 : " << age;
return 0;
}
결과는 이러하다
이렇게 공백을 두고 여러 값을 입력받을 수도 있다