## C++ 표준 입출력
c++에서의 표준 함수들은 함수 앞에 std:: 를 붙여주어야 사용할 수 있다.
C | C++ | |
출력 | printf 함수 | std::cout 객체 |
변수값 출력 | %d, %f 필요 | format 지시어 필요 없음 |
특징 | <<를 연속적으로 사용 가능 | |
개행 | \n | \n 또는 std::endl |
입력 | scanf 함수 - 주소를 전달 (&n) |
std::cin 객체 - 주소가 아닌 n으로 전달 |
헤더파일 | <cstdio> | <iostream> |
- std::cout 객체
- C++ 초창기부터 사용되던 표준 출력 객체
- 단점 1: 여러 개 변수 출력시 코드 복잡
- 단점 2: 성능이 느리다 (printf 사용..)
#include <cstdio> //stdio.h
#include <iostream>
int main(){
int n = 10;
double d = 3.4;
printf("%d, %f \n", n, d); //c언어
std::cout << n << ", " << d << std::endl; //c++
scanf("%d", &n); //c언어
std::cin >> n; // c++
}
/*
soyoun> ./a.out # ~/c++_code/basic
10, 3.400000
10, 3.4
10
5
*/
## io manipulator
→ 입출력시의 다양한 출력(입력) 형태를 지정하는 것
→ 조정자(조작자) 함수
→ <iostream>, <iomanip> 등의 헤더
- std::dec 변수값을 10진수로 출력
- std::hex 변수값을 16진수로 출력
- std::setw 문자열 출력시 개수 지정
- std::setfill 공백 채울 문자 지정
- std::left 왼쪽 정렬(align)
//코드 상단에 using namespace std; 를 적어주면 매번 std:: 를 함수 앞에 적어주지 않아도 된다.
#include <iostream> //cout 함수
using namespace std;
#include <iostream>
#include <iomanip>
int main()
{
int n = 10;
std::cout << n << std::endl;
// "%x" 16진수
std::cout << std::hex << n << std::endl;
// "%d" 10진수
std::cout << std::dec << n << std::endl;
// "%10d"
std::cout << std::setw(10) << n << std::endl;
//10자리에 맞춰 출력할 건데 공백은 #으로 채울 때
std::cout << std::setw(10) << std::setfill('#') << n << std::endl;
//왼쪽 정렬 (오른쪽에 공백 채우기)
std::cout << std::setw(10) << std::setfill('#') << std::left << n << std::endl;
std::cout << std::setw(10) << std::setfill('#') << std::right << n << std::endl;
}
/*
soyoun> ./a.out # ~/c++_code/basic
10
a
10
10
########10
10########
########10
*/
- C++에서 줄바꿈 출력하기 위해서는 cout << endl; 이용
#include <iostream>
using namespace std;
int main() {
cout << "Hello World";
cout << endl;
cout << "C++ is fun";
return 0;
}
- cout을 이용해서 숫자 출력도 가능하다.
- cout << fixed 는 소수점 자리 표현을 고정하겠다는 뜻이고, cout.precision(n) 은소수점 n째자리까지 표현하겠다
#include <iostream>
using namespace std;
int main() {
cout << fixed; //소숫점 자리 표현 고정
double a = 33.567268;
cout.precision(4);
cout << a << endl;
cout.precision(2);
cout << a << endl;
return 0;
}
## std::print
✔ C++ 23에서 추가되는 새로운 출력 함수
#include <iostream>
#include <print>
int main(){
int n = 10;
double d = 3.4;
std::cout << "n = " << n << ", d =" << d << std::endl;
std::println("n = {}, d = {}", n. d);
std::println("{0}, {1}, {0}", n, d);
std::print("hello "); //개행 안됨
std::println("world"); //개행
}
cin 입력함수
cin 역시 cout 과 동일하게, 코드 상단에 cin 함수가 들어있는 iostream 헤더를 포함시켜주어야 한다.
cin 을 통해 입력을 받으면 줄을 바꿔주는 \n 역시 공백과 마찬가지로 입력에서 무시된다.
#include <iostream>
using namespace std;
int main() {
//변수 선언
int a;
//입력
cin >> a;
cout << a + 2;
return 0;
}
반응형
'프로그래밍 > C ++' 카테고리의 다른 글
[C++] 함수 (0) | 2024.12.03 |
---|---|
[C++] 자료형 (묵시적형변환) (0) | 2024.12.03 |
[c++] C++ 변수의 특징 (0) | 2024.07.08 |
[c++] std namespace / header file (0) | 2024.07.04 |
[C++] namespace (0) | 2024.06.24 |