c 언어에서 사용하는 기본적인 출력 방법인 printf, scanf 를 사용한다.
#include <stdio.h>
int main()
{
int age = 0;
printf("How old are you ? >> ");
scanf("%d", &age);
printf("age : %d\n", age);
}
아래는 c 언어에서의 printf 와 scanf 를 c++에서 사용하는 방법입니다.
(물론 printf, scanf를 사용할 수는 있지만 추천하지 않는다.)
C++ 입출력
std::cout - 변수 출력 시 서식 문자열 지정이 필요없다. <<를 연속적으로 여러번 사용이 가능하다.
std::endl - \n 을 사용하는 것도 지원하지만 C++에서는 std::endl로 사용한다.
std::cin - 서식 문자열 필요 없으며 주소 연산자를 사용하지 않는다.
#include <iostream>
int main()
{
int age = 0;
std::cout << "How old are you ? >> ";
std::cin >> age;
std::cout << "age : " << age << std::endl; // '\n'
}
cout 과 endl 를 사용하는 3가지 방법
fully qualified name (권장하는 방법)
#include <iostream>
int main()
{
std::cout << "hello" << std::endl;
}
using declaration (cout, endl만을 사용한다면 이 방법도 좋음)
#include <iostream>
using std::cout;
using std::endl;
int main()
{
cout << "hello" << endl;
}
using directive (가장 쉽지만 충돌이 발생할 수 있음)
#include <iostream>
using namespace std;
int main()
{
cout << "hello" << endl;
}
iomanipulator
입출력 형태를 지정하기 위해 사용, 조정자 함수 또는 조작자 함수라고 표현한다.
<iostream> 또는 <iomanip> 헤더 필요
std::dec | 변수값을 10진수로 출력 |
std::hex | 변수값을 16진수로 출력 |
std::setw(10) | 문자열 출력시 개수를 지정 (10개 문자를 출력) |
std::setfill('#') | 공백을 채울 문자를 지정해줌 (여기서는 #으로 채움) |
set::left | 왼쪽 정렬 |
#include <iostream>
#include <iomanip>
int main()
{
int n = 10;
std::cout << n << std::endl; // 10진수
std::cout << std::hex; // 여기부터는 cout 출력시 16진수를 사용하겠다는 의미
std::cout << n << std::endl; // 16진수
std::cout << std::hex << n << std::endl; // 16진수
std::cout << std::dec; // 여기부터는 cout 출력시 10진수를 사용하겠다는 의미
std::cout << n << std::endl; // 10진수
std::cout << "hello" << std::endl;
// 10개 문자열을 출력하며, 빈 칸은 #으로 채우고, 왼쪽 정렬!
std::cout << std::setw(10) << std::setfill('#')
<< std::left << "hello" << std::endl;
// 10개 문자열을 출력하며, 빈 칸은 *로 채우고, 오른쪽 정렬!
std::cout << std::setw(10) << std::setfill('*')
<< std::right << "hello" << std::endl;
}
좀 더 자세한 iomanipulator 에 대해 알고 싶으면 아래 cppreference.com 홈페이지에서 정보를 제공하고 있습니다.
https://en.cppreference.com/w/cpp/io/manip
포스팅에 포함된 dec, hex, oct, setfill, setw, left 등에 대한 정보가 있으며, 이외에도 다양한 함수들을 제공하고 있습니다.
'C++' 카테고리의 다른 글
[C++] 변수 선언 : constexpr, structure binding (0) | 2021.08.07 |
---|---|
[C++] 변수 선언 : uniform initialize, auto, decltype, using (0) | 2021.08.06 |
[C++] header : iostream, cstdio, cstdlib, (0) | 2021.08.04 |
[C++] using namespace std; (0) | 2021.08.03 |
[C++] namespace, using (0) | 2021.08.02 |
댓글