일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Application
- TextInputlayout
- AutoCompleteTextView
- RelativeLayout
- layout
- textview
- Android
- FrameLayout
- ToggelButton
- Kotlin
- constraintlayout
- TEXT
- manifest
- EditText
- intent-filter
- Professional Android
- button
- CheckedTextView
- androidstudio
- switch
- PlainText
- Chip
- GridLayout
- LinearLayout
- Guideline
- RaduoButton
- TableLayout
- Today
- Total
근본있는 블로그
C++의 입출력 방식 본문
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <iostream> int main() { int val; std::cout << "첫번째 숫자 입력: "; std::cin >> val; int val2; std::cout << "두번째 숫자 입력: "; std::cin >> val2; int result = val + val2; std::cout << "덧셈결과: " << result << std::endl; return 0; } | cs |
이 코드 하나로 기존 C언어와 C++언어의 입출력문의 차이를 알아보겠습니다.
1. 헤더파일 선언문
기존에 C언어에서는 <stdio.h>로 헤더파일을 포함시켜 입출력을 위한 printf와 scanf함수를 호출하였을 것입니다. C++ 에서는 C언어와 다르게 입출력을 위해 printf와 scanf를 사용하지 않고 std::cout, std::endl, std::cin 등을 사용할 것이고 이 함수들은 <iostream>이라는 헤더파일에 포함되어 있습니다.
참고로 C++에서는 .h라는 헤더파일의 확장자는 생략하기로 하였습니다.
2. std::cout
C언어에서는 printf('출력대상');과 같은 식으로 데이터 출력을 명령하였다면 C++에서는 다음과 같은 방식을 사용한다.
std::cout <<'출력대상';
std::cout << '출력대상1' << '출력대상2' << '출력대상3'; 와 같은 식으로 둘 이상의 데이터 출력을 명령하는 것입니다.
C언어에서 printf를 실행했을 때를 기억해보죠. 우리는 출력 대상에 따라서 %d, %s 같은 형식으로 출력포맷을 지정해줘야 했지만 위의 예제를 보면C++에서는 별도의 포맷 지정없이 적절한 출력이 이루어짐을 알 수 있습니다.
3.std:endl
<<연산자를 이용한 std::endl의 출력은 개행으로 이어집니다. 주어진 예제에서 << std::endl을 지우고 실행해 본다면 차이를 알 수 있을 것입니다.
3.std::cin
C++에서는 키보드로부터의 데이터 입력을 위해서 std::cin >> '변수';와 같은 형식을 취합니다.
6행을 C언어에서는 scanf("%d", &val1);와 같은 식으로 표현해야 했습니다. 출력과 마찬가지롤 별도의 출력포맷을 지정해줘야했죠. 하지만 출력과 마찬가지로 입력에서도 C++는 별도의 포맷지정이 필요하지 않습니다.
연속적인 데이터의 입력을 요구하고 싶다면 다음과 같이 사용할 수도 있습니다.
std::cin >> '변수1' >> '변수2';
정리
1. C++에서는 기본입출력을 위해서 <iostream>이라는 헤더파일을 포함시킨다!
2. 출력: std::cout
개행: std::endl
입력: std::cin
3. C++의 입출력에서는 별도의 포맷지정이 필요하지 않다!
출저: 열혈 C++ 프로그래밍 - 저자 윤성우
'C++' 카테고리의 다른 글
변수의 별명 참조자(Reference) (0) | 2019.03.27 |
---|---|
C언어에는 없던 이름공간(namespace)!! (0) | 2019.03.23 |
함수의 오버로딩, 매개변수의 디폴트 값 그리고 인라인 함수 (0) | 2019.03.22 |