열혈 c++ 프로그래밍을 보고 요약정리합니다.
.h → 과거 표준 라이브러리 or 프로그래머가 정의하는 헤더파일의 선언
#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;
}
데이터의 입력도 데이터의 출력에서 별도의 포맷 지정이 필요 없다.
실수형 덧셈을 하고자 한다면, 데이터 타입을 double같은 실수형 변수로 바꿔주면 된다.
다음처럼 연속으로 데이터 입력을 받을 수도 있다.
std::cin>>val1>>val2; // 두 데이터는 공백(탭, 스페이스바, 엔터 키)에 의해 나눠진다.
배열 기반의 문자열 입출력
#include <iostream>
int main(void) {
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;
}
#include <iostream>
void swap(int*num1, int*num2) {
int temp = *num1;
*num1 = *num2;
*num2 = temp;
std::cout<<*num1<<std::endl<<*num2;
}
void swap(char*ch1, char*ch2) {
char temp = *ch1;
*ch1 = *ch2;
*ch2 = temp;
std::cout<<*ch1<<std::endl<<*ch2;
}
int main(void) {
int num1=20, num2=30;
swap(&num1, &num2);
std::cout<<'\n';
char ch1 = 'a', ch2 = 'b';
swap(&ch1, &ch2);
return 0;
}
#include <iostream>
int MyFunc(int num1=5, int num2=7) { //전달되는 인자는 왼쪽부터 채워나간다.
return num1 + num2;
}
int main(void) {
std::cout<<MyFunc()<<std::endl; // 12
std::cout<<MyFunc(1)<<std::endl; // 8
return 0;
}
매크로 함수
#include <iostream>
#define SQUARE(x) ((x)*(x))
int main(void) {
std::cout<< SQUARE(5) <<std::endl;
return 0;
}
위의 단점을 해결하는게 c++ 인라인 함수
#include <iostream>
inline int SQUARE(int x) {
return x*x;
}
int main(void) {
std::cout<<SQUARE(5)<<std::endl;
std::cout<<SQUARE(12)<<std::endl;
return 0;
}
#define SQUARE(x) ((x) * (x))
std::cout<<SQUARE(12);
std::cout<<SQUARE(3.15);
#include <iostream>
template <typename T>
inline T SQUARE(T x) {
return x*x;
}
int main(void) {
std::cout<<SQUARE(5.5)<<std::endl;
std::cout<<SQUARE(12)<<std::endl;
return 0;
}
#include <iostream>
using namespace std;
namespace BestComImpl
{
void SimpleFunc(void) {
std::cout<<"BestComImpl이 정의한 함수"<<std::endl;
}
}
namespace ProgComImpl
{
void SimpleFunc(void) {
std::cout<<"ProgComImpl이 정의한 함수"<<std::endl;
}
}
int main()
{
BestComImpl::SimpleFunc();
ProgComImpl::SimpleFunc();
return 0;
}
using Hybrid::HybFunc; //HybFunc은 Hybrid 이름공간에서 찾으라는 선언
HybFunc();
return 0;
using 또한 지역변수, 전역변수처럼 선언된 지역에서만 적용되기 떄문에 프로그램 전체에 적용하기 위해서는 함수밖에 선언해야 한다.#include <iostream>
using std::cin; // using namespace std; 로 간결하게 나타낼수도 있다.
using std::cout;
using std::endl;
int main()
{
int num=20;
cout<<"Hello World!"<<endl;
cout<<"Hello "<<"World!"<<endl;
cout<<num<<' '<<'A';
cout<<' '<<3.14<<endl;
return 0;
}
int val=100; //전역 변수
int SimpleFunc(void)
{
int val=20; //지역 변수
val += 3; //지역변수 val의 값 3 증가
}