이번 시간에는 네임스페이스와 cin에 대해 배울겁니다
네임스페이스를 가장 이해하기 쉽게 설명을 하자면,
예시를 들어보겠습니다.
내가 프로그램을 만들려하는데 네이버 로그인과 구글 로그인을 붙이려고 해요
그래서 네이버랑 구글에서 각각 로그인 기능 코드를 가져왔습니다.
근데 두 회사 모두 로그인을 해주는 함수 이름이 Login이에요!
그럼 내가 Login함수를 사용하면 네이버로그인이 될까요? 구글로그인이 될까요?
둘다 함수이름이 Login이니까 뭐가 써질지 모르는거죠!
그래서 이런 네이밍 겹침현상을 방지하기 위해서 만들어진게 네임스페이스입니다!
네이버에서 만든 로그인기능은 네이버라는 네임스페이스 안에있고
구글에서 만든 로그인 기능은 구글이라는 네임스페이스 안에있으면
내가 필요에 따라 그 네임스페이스에 들어가서 Login함수를 호출해주면 되니까요!
그리고 우리가 저번시간에 배웠던 cout! 거기에도 네임스페이스가 있었습니다!
바로 std인데요! std라는 네임스페이스 안에있는 cout을 사용하겠다 라는 의미에서
cout 앞에 std::를 붙여서 std::cout 이라고 사용했던겁니다!
endl도 std네임스페이스 안에있는 기능이기때문에 std::endl이 되는거구요!
하지만 매번 붙이기는 당연히 번거롭겠죠?
그래서 현재 파일에서는 무조건 이 네임스페이스를 사용하게한다! 라는 문법이 있습니다
using 이라는 문법인데요! 사용법을 알아볼까요?
using namespace 네임스페이스_이름
이렇게 해주면 됩니다!
그럼 바로 std를 using을 사용해서 생략가능하게 만들고 사용해보죠!
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World";
}
using을 사용해서 이 파일에서는 std 네임스페이스를 기본사용한다! 라고 해놓았기 때문에!
cout 앞에 std::를 붙여주지 않아도 std안에있는 cout을 사용하게 됩니다! 한번 실행을 해볼까요?
잘 되는군요!
자 그럼 네임스페이스에 대해 알아봤으니 이번엔 저번시간에 배운 cout과 반대! cin을 배워보겠습니다
cout이 C언어에서의 printf함수였다면,
cin은 C언어에서의 무엇일까요!
바로 scanf함수입니다! scanf함수는 사용자의 입력을 받아서 변수에 할당해 주는 역할을 했죠!
printf함수는 문자열 부분에 포맷을 적어놓고 변수를 출력해야했지만, cout에서는 그냥 출력할 변수를
넘겨주기만 하면 자동으로 출력이 됐었습니다,
cin도 마찬가지로 scanf는 사용자에게 입력받을 자료형 포맷을 문자열에 넣어줘야했습니다.
하지만 cin은 자동으로 알아서 넣어줍니다 참 편하죠! 그럼 사용법을 알아볼까요?
int a;
std::cin >> a;
이렇게 하면 자동으로 정수형 입력을 받아서 a에다가 할당해주게 됩니다! 훨씬 편하죠!
어라 또 std::가 들어가네요?
네! using 구문을 쓰지 않았을때 기준으로 작성했기때문에
using구문으로 std를 사용한다고 명시를 해놓았다면
std::cin이 아닌 cin으로 생략해서 사용할 수 있습니다!
앞으로는 std::를 생략하도록 하겠습니다! cin과 cout이외에도 std::를 생략할테니,
이후에 배울 내용을 코딩중 에러가 난다면 std 네임스페이스에 정의된것은 아닌지
잘 주의 해 보시길 바랍니다!
cin도 cout과 마찬가지로 여러개를 한줄로 엮을수 있습니다!
다음 예시를 보시죠!
#include <iostream>
using namespace std;
int main() {
int a;
float b;
cin >> a >> b;
cout << a << endl << b;
}
자, 코드가 이해가 되시나요?
cin으로 정수형 입력을 받아서 a에 넣고, 그 다음에는 실수형 입력을 받아서 b에다 넣는다!
그리고 cout으로 a를 출력하고 줄을 바꾼다음 b를 출력한다!
맞는지 볼까요??
위 두 줄은 제가 입력한 것이고, 아래 두줄은 출력된 내용입니다! 원하는대로 잘 나오는군요!
자, 그럼 오랜만에 문제를 내보도록 하죠!
계산기를 만들겁니다!
계산 수식을 넣으면 계산된 결과가 출력되는 코드를 만들어주세요!
계산기에 지원 되어야 하는 수식은 + - * / 이고
a + b와같이 항이 2개만 있는 수식을 풀어주는 계산기로 제한하겠습니다!
정답은 아래에 남겨놓을테니 다 풀어보시고 확인 해보세요!
기본 기능들은 C와 같다고 했으니, if문 for문 등등은 사용할줄 아시리라 믿습니다!
정답
#include <iostream>
using namespace std;
int main() {
float a;
float b;
char oper;
cin >> a >> oper >> b;
float result = 0;
if (oper == '+') {
result = a + b;
}
else if (oper == '-') {
result = a - b;
}
else if (oper == '*') {
result = a * b;
}
else if (oper == '/') {
result = a / b;
}
cout << a << " " << oper << " " << b << " = " << result;
}
'C++' 카테고리의 다른 글
([C++] 5강) if문과 else, else-if문 (C와 동일) (0) | 2022.06.21 |
---|---|
([C++] 4강) 변수의 선언과 할당 (0) | 2022.06.21 |
([C++] 2강) iostream과 cout (0) | 2022.06.21 |
([C++] 1강) VisualStudio로 CPP 프로젝트 생성하기 (0) | 2022.06.21 |
([C++]0강) 프롤로그 (0) | 2022.06.21 |