[C++] C++을 다뤄봅시다
        
        
      REF : 윤성우의 열혈 C++
42서울을 진행하면서 계속 C를 사용해야한다.
간만에 알고리즘 풀려고 파이썬을 보니 너무 헷갈린다…
그러니, 언어를 하나로 통합해서 공부해보도록하자.(난 머리가 안좋으니…)
Hello World로 C와 C++비교
데이터 출력
- 출력 예제
 
#include <iostream>
int main()
{
	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>
c++에선 표준입출력을 하기 위해선 iostream헤더를 선언해야한다.
C언어에선 표준 헤더파일인 stdio.h를 선언하면 표준입출력을 할 수 있는데,
.h가 없는 이유는 c++에선 표준 헤더파일 선언에서는 확장자를 생략하기로 약속한다.
- std::cout
 
출력하기위한 기본적인 형태는 아래와 같다.
std::cout<< '출력대상';
c++은 별도의 출력포맷을 지정하지 않아도, 데이터의 성격에 따라 적절한 출력이 이뤄진다.
<<연산자
둘 이상의 출력대상을 연이어서 출력한다.
std::cout<<`출력대상1`<<`출력대상2`<<`출력대상3`;
따라서,
std::cout<<"Hello " << "World!" << std::endl;
위 코드는 Hello 와 World!를 출력하고, 마지막에 개행문자를 출력하라는 의미이다.
데이터 입력
- 입력 예제
 
#include <iostream>
int main()
{
	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
	{
		int i = val2 + 1;
		while (i < val1)
		{
			result += i++;
		}
	}
	std::cout<<"두 개 숫자 사이 값들의 합: "<< result << std::endl;
	return (0);
}```
<br>
1. std::cin
키보드 데이터 입력의 기본형태
```c
std::cin>>'변수';
변수의 위치에는 입력받은 데이터를 저장할 변수의 이름이온다.
출력과 동일하게, 데이터의 성격에 따라 알아서 적절하게 저장된다.
- c++의 지역변수 선언
 
원래 C에선 함수 정의시, 지역변수 선언이 항상 맨 위에 있어야했다.
(단 C의 새로운 표준에선 이를 허용한다)
그러나 C++의 모든 컴파일러는 지역변수 선언 위치에 제한을 두지 않는다.
또한, for문의 초기화 문장 내에서 변수선언도 가능한데,
아래와같은 코드는
int i = val1 + 1;
for (i; i < val2; i++)
아래처럼 바꿀 수 있다.
for (int i = val1 + 1; i < val2; i++)
- 연속적인 데이터의 입력
 
std::cin>>val1>>val2;
연속적인 데이터 출력이 가능하듯, 연속적인 데이터 입력도 가능하다.
입력시, 두 변수가 터미널 상으로 나눠지는 기준은
탭, 스페이스 바, 엔터 와 같은 공백에 의해 나눠진다.
배열 기반의 문자열 입출력
- 예제
 
#include <iostream>
int main()
{
	char name[100];
	char lang[200];
	std::cout<<"이름이 무엇인가? ";
	std::cin>>name;
	std::cout<<"좋아하는 프로그래밍언어가 있나요?";
	std::cin>>lang;
	std::cout<<"내 이름은 "<<name<<"입니다. \n";
	std::cout<<"제일 좋아하는 언어는 "<<lang<<"입니다."<<std::endl;
	return 0;
}
name과 lang에 각각 100, 200만큼의 바이트가 할당되어있다.
각각 입출력대상은 문자열이댜.
- 터미널 상으로 사용자가 값 입력.
 - 해당 값을 공백으로 구분해 자료형에 저장.
 
이런 과정으로 배열에 값이 입력된다.
댓글남기기