C++에서의 표준 입출력
왜 C++이 좋다고 하는 것일까?
JAVA의 system.out.print
C의 printf
C++?
✅C++ 표준 출력 cout
C++의 표준 출력은 std::cout을 이용한다.
C에서는 printf가 있다면 C++에는 std::cout이 있다.
std::cout을 통해 알아야하는 점은 "std::" => std 네임스페이스에 속해 있다는 것이다.
c언어와 달라진 점은 C++은 뒤에 확장자 h를 생략할 수 있다는 점이다.
#include<iostream>
새로운 C++표준 도입으로, 구/신 표준 라이브러리의 구분과 더불어 소스코드를 쉽게 변경하기 위함이다.
std::out << "chicken noodle soup" << std::endl;
std::cout << '출력 대상' ;
다음과 같이 출력되며,std::cout는 printf와 달리 별도의 출력포맷을 지정할 필요가 없다.
또 달라진 점!
<<std::endl
c언어에서처럼 \n을 통해 개행할 수도 있지만, std::endl의 출력을 통해 개행을 할 수도 있다.
개행 문자? 줄바꿈문자(텍스트 한 줄이 끝났음을 표시하는 문자 또는 문자열)라고 보면 된다.
#include<iostream>
int main(void)
{
// '\n'
std::cout << "cout 줄바꿈1" << "\n";
// '\n'
std::cout << "cout 줄바꿈2\n";
// std::end1
std::cout << "cout 줄바꿈3 " << std::endl;
std::cout << "개행 끝";
return 0;
}
std::cout을 통해 출력한 위에서부터 세가지 모두 \n이나 endl을 통해 줄바꿈을 실행하므로 모두 출력 후 줄바꿈이 일어난다.
C++의 표준이 cout이지만, pritnf를 사용해도 무방하다.
✅C++ 표준 입력 cin
C에서 C++로 오면서 혁신적인 것은 입출력 시에 별도의 포맷지정을 요구하지 않는다는 점이다.
C++의 표준 출력은 std::cin을 이용한다.
C에서는 printf가 있다면 C++에는 std::cout이 있다.
std:cin>>'변수'
위와 같은 형태로 데이터를 입력받는다.
C에서 scanf의 역할을 한다고 보면 된다.
#include<iostrem>
#include<string>
int main(void)
{
int num;
std::string str;
std::cout << "메뉴 선택 : ";
std::cin >> menuNum;
std::cout << "메뉴명 입력 : ";
std::cin >> str;
std::cout << "입력 받은 메뉴 번호는 " << num << "입니다." << std::endl;
std::cout << "입력 받은 문자열은 " << str << "입니다." << std::endl;
return 0;
}
cout이 <<로 나가는 것과는 반대로 cin은 >>로 방향을 반대로 쓰는 시프트 연산자를 사용한다.
시프트 연산자가 나오면 유저에게 입력받는 데이터를 저장할 변수를 지정해주면 된다.
C++은 scanf처럼 데이터 타입을 알려주는 서식 문자열이 필요없다.
또한 주소를 나타내는 주소 연산자 &도 필요로 하지 않는다.
C언어에서의 번거로움을 모두 덜어내고, 위의 예제처럼 C++에서 cin은 시프트연산자가 cin쪽으로 입을 벌리는 것과 시프트 연산자 이후에 변수를 작성해준다. 이 두 가지만 기억하면 된다.
또한 연속적인 데이터의 입력도 가능하다
std::cin>>'변수1'>>변수2;
위처럼 입받을때 scnaf와 마찬가지로,
탭,스페이스 바, Enter키의 입력을 구분자로 사용한다.
문자열의 입출력은 문자와 마찬가지로, 앞선 예제들을 참고하면 된다.
'Language & Framework & GIT > C++' 카테고리의 다른 글
[씨앤씨뿔]C++/ C++의 기본 - 3 (0) | 2023.04.17 |
---|---|
[씨앤씨뿔]C++/ C++의 기본 - 2 (0) | 2023.04.14 |
[씨앤씨뿔]C++/ C++의 기본 - 1 (0) | 2023.04.13 |
[씨앤씨뿔]C++/ namespace - 2 (1) | 2023.04.13 |
[씨앤씨뿔] C++/ namespace -1 (0) | 2023.04.12 |
댓글