[C++ 공부하기] 기본 입출력

2024. 3. 8. 10:23C++공부하기

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;
}

 

결과는 이러하다

이렇게 공백을 두고 여러 값을 입력받을 수도 있다