본문 바로가기
C++/C++ 기초 문법

[C++] C++ 기초

by 후야- 2023. 12. 20.

1. "Hello World!"

#include <iostream>  // 입출력을 위한 헤더파일

int main()
{
	int num = 30;
	std::cout << "Hello, World!" << std::endl;
	std::cout << "안녕 반가워" << std::endl;
	std::cout << "안녕 " << "방가워" << std::endl;
	std::cout << num << ' '  << 'A';
	std::cout << ' ' << 3.14 << std::endl;
	return 0;
}


2. 주석

주석은 프로그래머에게 전달하는 메세지이며 컴파일러는 이 부분을 무시한다.

C++ 두 가지 방법을 사용한다.

첫 번째 방식 : 한 줄 주석   // 뒤는 주석처리
두 번째 방식 : 여러 줄 주석 /*로 시작해서 */로 끝난다.

3. 모듈 임포트

C++ 20 부터 새롭게 추가된 대표적인 기능 중 하나 모듈(module)이다.

모듈은 예전에 헤더 파일이라 부르던 메커니즘을 완전히 대체한다.

어떤 모듈에 담긴 기능을 사용하고 싶으면 그 모듈을 import 문으로 불러오면 된다.

import <iostream>;

-> import 적용 안될 시 c++ 20 으로 바꿔야 함


4. 전처리 지시자 

현재 사용하는 컴파일러가 아직 C++20 모듈 기능을 지원하지 않는다면 import 선언문을 사용해야 한다.

#include <iostream>

 

◾ C++ 로 프로그램을 만드는 빌드 작업은 세 단계로 거치는데

 1. 전처리(preprocess) : 소스 코드에 담긴 메타 정보를 처리한다.

 2. 컴파일(compile) : 소스 코드를 머신이 읽을 수 있는 객체 파일로 변환한다.

 3. 링크 : 변환한 여러 객체 파일을 애플리케이션으로 엮는다.

 

◾ 지시자(디렉티브) 는 전처리기에 전달할 사항을 표현하며, # 문자로 시작한다.

#include 지시자는 <iostream> 헤더 파일에 있는 내용을 현재 파일에서 사용할 수 있게 모두 가져온다.

<iostream> : 입출력을 위한 헤더 파일

 

◾ 헤더 파일의 주 용도는 소스 파일에서 정의할 함수를 선언하는 것이다.

 

 📃 자주 사용하는 전처리 지시자

#include [파일] : 다른 곳에 정의된 함수 파일 가져오기

#define [키] [값] : 코드에서 '키' 에 해당하는 부분을 모두 '값'으로 지정한 내용으로 바꾼다.

#ifdef [키] : '키' 가 #define 문으로 정의되어 있으면 포함

#endif

 

#ifndef [키] : '키' 가 #define 문으로 정의되어 있지 않으면 포함

#endif

 

#pragma [xyz] : 경고나 에러 메세지를 화면에 표시하는 용도로 사용한다.

 


5. main( ) 함수

프로그램은 항상 main( ) 함수에서 시작한다. 

main( )  함수는 int 타입의 값을 리턴한다

int main(int argc, char* argv[]

-> argc 는 프로그램에 전달할 인수의 개수를 지정하고, argv는 전달할 인수의 값을 담는다.

 


5. I/O 스트림

I/O 스트림 (입출력 스트림)

std::cout 는 표준 출력이라고 부른다.    ( = printf)

std::endl  는 강제 줄바꿈을 의미한다.

#include <iostream>

int main()
{
	std::cout << "오늘은 " << 29 << "일이야" << std::endl;
	std::cout << "출력대상1" << "출력대상2" << "출력대상3";
	
	return 0;
}

 

 

 

C++ 20 부터는 스트링 포맷은 <format>에 정의된  std::format 으로 지정하는 방식을 권장한다.

std::cout << std::format("오늘은 {} 일이야", 29) << std::endl;

 

 

 

✳ std::cin : 입력 스트림으로 사용자가 키보드로 입력한 값을 받는다.   ( = scan_f)

◾ 정수형

#include <iostream>

int main()
{
	int number1;
	std::cout << "첫 번째 숫자입력: ";
	std::cin >> number1;

	int number2;
	std::cout << "두 번째 숫자입력: ";
	std::cin >> number2;

	int number3;
	std::cout << "세 번째 숫자 입력: ";
	std::cin >> number3;

	int result = number1 + number2 + number3;
	std::cout << "덧셈결과: " << result << std::endl;

	return 0;
}

◾ 실수형

#include <iostream>

int main()
{
	double number1;
	std::cout << "첫 번째 숫자입력: ";
	std::cin >> number1;

	double number2;
	std::cout << "두 번째 숫자입력: ";
	std::cin >> number2;

	double number3;
	std::cout << "세 번째 숫자 입력: ";
	std::cin >> number3;

	double result = number1 + number2 + number3;
	std::cout << "덧셈결과: " << result << std::endl;

	return 0;
}

 

◾ 정수형

#include <iostream>

int main()
{
	char str[10];
	std::cin >> str;

	return 0;
}

 

◾ 배열 기반의 문자열 입출력

#include <iostream>

int main()
{
	char name[100];
	char hobby[100];

	std::cout << "이름이 무엇인가요? ";
	std::cin >> name;

	std::cout << "취미가 무엇인가요? ";
	std::cin >> hobby;

	std::cout << "내 이름은 " << name << "입니다. \n";
	std::cout << "내 취미는 " << hobby << "입니다." << std::endl;
	return 0;
}

'C++ > C++ 기초 문법' 카테고리의 다른 글

[C++] 열거 타입  (0) 2023.12.22
[C++] 인라인(inline) 함수  (0) 2023.12.22
[C++] 매개변수의 디폴트 값  (0) 2023.12.21
[C++] 함수 오버로딩  (0) 2023.12.21
[C++] namespace - 네임스페이스  (1) 2023.12.20