c++도 c언어와 마찬가지로 헬로월드 부터 시작해보자!!!
//
// main.cpp
// 1_practice
//
// Created by 서희찬 on 2021/04/26.
//
#include <iostream>
int main(void)
{
int num=20;
std::cout<<"Hello World!"<<std::endl;
std::cout<<"Hello "<<"World!"<<std::endl;
std::cout<<num<<' '<<'A';
std::cout<<" "<<3.14<<std::endl;
return 0;
}

위의 코드와 출력물을 대상으로 관찰하면 이와 같은 사실을 알 수 있다.
- 헤더파일 선언문 #include < iostream >
- std::cout ,<< 을 이용한 출력
- std::endl 을 이용한 개행
c언어에서 printf/scanf를 위해 <stdio.h>를 포함했다면 C++ 에서는 다른
include < iostream >
이 헤더파일을 추가해야한다.
그런데.. 위의 헤더파일 선언문을 보면 이와같은 생각이 든다.
"c++의 헤더파일에는 확장자가 없나요..?"
아니다!!!!!
헤더파일은 씨와 마찬가지로 .h이다.
다만 씨플플에서는 표준 헤더파일의 선언에서는 확장자를 생략하기로 약속되어 있다.
(iostram.h 는 과거의 표준 라이브러리에서 쓰인다.)
출력을 위해서는 다음의 형태를 취해야 한다.
std :: cout << '출력대상';
출력 대상 위치에는 무엇이든~ 올 수 있다.
정수,실수,문자열 변수~ 등등 말이다!
그리고 C와 달리 %d,%s와 같은 서식문자를 이용해서 별도의 출력 포맷을 지정하지 않아도 데이터의 성격에 따라 적절한 출력이 이뤄진다 !!
하지만!!
왜 어째서 이렇게 되는지는 추후에 배워보자 !
<<도 사실 연산자이다!
이를 이용해서 둘 이상의 출력대상을 연이어서 출력할 수 있다.
std::cout<<"출력대상1"<<"출력대상2"<"출력대상3";
그리고 std::endl이 의미 하는 바는
<< 연산자를 이용한 std::endl의 출력은 개행으로 이어진다.
이렇게 우리는 하나의 예제를 통해
std::cout,<<,std::endl의 사용법을 알았지만 정체를 모른다!
하지만 이는 추후에 서서히 밝혀질것이다!!!
다음 예제를 보자
//
// main.cpp
// 1_practice
//
// Created by 서희찬 on 2021/04/26.
//
#include <iostream>
int main(void)
{
int val1;
std::cout<<"첫 번째 숫자입력 : ";
std::cin>> val1;
int val2;
std::cout<<"두 번째 숫자입력 :";
std::cin>> val2;
int result = val1 + val2;
std::cout<<"덧셈 결과 :"<<result<<std::endl;
return 0;
}

위 예제를 통해서 알 수 있는 특성은 다음과 같다.
- 키보드로부터 데이터의 입력에도 헤더파일 선언문 #include 이 필요하다
- 키보드로부터 데이터 입력에는 std::cin, >> 연산자가 사용된다.
- 변수의 선언은 어디~서~든~ 가능하다!
헤더파일은 생략하고 나머지를
구체적으로 확인하자 !
예제에서 보이듯 데이터의 입력을 위해서는
std::cin >>"변수";
형태를 취한다.
이는 키보드로부터 정수를 하나 입력받아 "변수"에 저장 하라는 의미이다.
그렇다면 실수형을 더할때는 어떻게 하면될까?
int -> double로 자료형을 바꿔주기만 하면된다.
"c++ 에서는 데이터의 입력도 데이터의 출력과 마찬가지로 별도의 포맷 지정이 필요 없기 때문이다!"
즉! int 형 변수가 오면 int형 데이터의 입력이!
double형 이 오면 double형 데이터 입력이!!!
한번 예제를 수정 해서 소수를 입력해보자 !

소수로 잘 출력된다!!
이러한 방법은 문자열 이라고 해서 달라지지 않는다!
c언어에서는
char str[100];
scanf("%s, str);
이러한 방식이지만
C++에서는
char str[100];
std::cin>>std;
이다 !!!
c++는 c와 다르게 모든 컴파일러는 지역변수의 선언 위치에 제한을 두지 않는다.
한번 다음 예제를 보자!
두 개의 정수를 입력 받고 그 사이에 존재하는 정수들의 합을 계산해주는 문제이다.
//
// main.cpp
// 1_practice
//
// Created by 서희찬 on 2021/04/26.
//
#include <iostream>
int main(void)
{
int val1, val2;
int result = 0 ;
std::cout<<"두 개의 숫자 입력: ";
std::cin>>val1>>val2;
if(val1<val2)
{
for(int i=val1+1;i<val2;i++)
result+=i;
}
else
{
for(int i=val2+1;i<val1;i++)
result+=i;
}
std::cout<<"두 수 사이의 정수 합 : :"<<result<<std::endl;
return 0;
}

성공적으로 출력이 된다 .
이를 통해서 std::cin>>'변수1'>>"변수2";
로 연속적인 데이터의 입력을 요구 할 수 있음을 알수있다.
그리고 for문 안에서 변수 선언이 가능하다는 것 또한 알 수 있다.
마지막으로 배열 기반의 문자 입출력에 대해 알아보자 !!
//
// main.cpp
// 1_practice
//
// Created by 서희찬 on 2021/04/26.
//
#include <iostream>
int main(void)
{
char name[100];
char lang[100];
std::cout<<"이름은 무엇입니까?" ;
std::cin>>name;
std::cout<<"좋아하는 프로그래밍 언어는 무엇인가용 ? ";
std::cin>>lang;
std::cout<<"내 이름은 "<<name<<"입니다 \n";
std::cout<<"제일 좋아하는 언어는 "<<lang<<"입니다."<<std::endl;
return 0;
}

이를 통해 기본 입출력에 대해 배우는 시간을 가졌다 !!