C++ 프로그램의 기본 요소와 화면 출력
// 예제 2-1
#include <iostream> // 기본 입출력에 대한 클래스와 객체를 선언
int main() {
std::cout << "Hello World\n"; // 출력문
std::cout << "첫 번째 맛보기입니다.";
return 0; // 프로그램 종료
}
cout << 문자열과 다양한 데이터를 화면에 출력하는 문법.
\n : 개행 문자. std::endl; 로 대체 가능 (두 개의 차이는 버퍼를 비우냐 안 비우느냐 차이)
:: : 범위 지정 연산자
주석문(Comment): 프로그램의 실행에 영향을 미치지 않으며 개발자가 프로그램에 대한 설명이나 자유롭게 붙인 특이 사항의 메모
- 여러 줄의 주석을 만들 땐 /* ~ 내용 ~ */
- 한 줄의 주석을 만들 땐 //
Main() 함수: C++ 프로그램의 시작점. C++ 프로그램은 반드시 하나의 main() 함수가 존재해야 하며, main() 함수가 종료되면 프로그램이 종료된다.
- 리턴 타입은 int다 (void를 한다고 해서 컴파일러에서 에러 처리하진 않지만, int로 하는 것이 좋다)
- main() 함수는 정수를 리턴하는 return 문이 있어야 한다.
- main() 함수가 반환한 정수 값은 부모 프로그램인 운영체제에 전달된다.
전처리기(Preprocessor) : C++ 소스 파일을 컴파일하기 전에 헤더 파일을 읽어 C++ 소스 파일 안에 삽입할 것을 지시하는 것.
- C++ 컴파일러는 처음에 전처리기를 호출하여 #include로 된 라인을 모두 처리한 후, C++ 소스 파일 컴파일.
// 예제 2-2
#include <iostream>
double area(int r); // 면적을 구하는 함수의 원형 선언
double area(int r) // 면적을 구하는 함수
{
return 3.14 * r * r;
}
int main()
{
int n = 3;
char c = '#';
std::cout << c << 5.5 << '-' << n << "hello" << true << std::endl;
// 출력을 << 연산자를 이용해 여러 번 할 수 있음
std::cout << "n + 5 = " << n + 5 << '\n';
std::cout << "면적은 " << area(n);
return 0;
}
다음과 같이 여러 개의 << 연산자로 한 문장에 여러 데이터를 출력할 수 있음.
요약
주석문
1. 정의: 프로그램의 실행에 영향을 미치지 않으며 개발자가 프로그램에 대한 설명이나 자유롭게 붙인 특이 사항의 메모
2. 사용법
a. /* ~~~ */
b. ~~~ //
Main()
1. 정의: C++ 프로그램의 시작점
2. 특징
a. 리턴 타입: int
b. Main()도 함수기 때문에 반환을 해야함
cout과 << 연산자를 이용해 화면에 출력할 수 있음
namespace와 std::
namespace: 프로그램에서 이름(indentifier)이 충돌하는 것을 막기 위해, 고유한 이름 공간을 생성할 수 있도록 만든 키워드
- namespace를 생성하는 방법은 다음과 같이 키워드 뒤에 이름 을 짓고 '{ }'로 묶는다.
- 이름 공간을 이용하기 위해 서는 다음과 같이 사용한다.
이름공간(namespace) :: 이름(identifier)
namespace <name> { ... }
- std:: : C++ 표준 라이브러리가 들어 있는 표준 이름 공간으로서, 응용 프로그램이 std에서 선언된 이름을 사용할 때 std::를 접두어로 붙여야 한다.
- std는 상당히 많이 사용하기 때문에, std 이름 공간에 선언된 수많은 이름에 대해 사용할 때마다 std:: 접두어를 붙이는 것은 상당히 번거롭다.
- 이를 해결 하기 위해 using 지시어를 이용해 이름 공간 접두어를 생략할 수 있다.
요약
namespace
1. 정의: 이름이 충돌하는 것을 막기 위한 키워드
2. 사용법
- namespace <name> { 내용 }으로 선언하고 name::으로 접근
3. std:: : C++ 표준 라이브러리가 들어 있는 표준 이름 공간
키 입력 받기
// 예제 2-3
#include <iostream>
using namespace std;
int main()
{
cout << "너비를 입력하세요: ";
int width;
cin >> width; // 콘솔 창에서 입력한 정수를 width에 저장
cout << "높이를 입력하세요: ";
int height;
cin >> height; // 콘솔 창에서 입력한 정수를 height에 저장
int area = width * height;
cout << "면적 = " << area << '\n'; // 면적 출력
}
cin >> : 사용자로부터 키를 입력 받는 표준 입력 스트림
>> 연산자: 스트림 추출 연산자로서, 왼쪽 피연산자인 스트림 객체로부터 데이터를 읽어 오른쪽 피연산자에 지정된 변수를 삽입
- 입력한 키들은 일차적으로 cin 스트림 버퍼에 저장
- Enter키가 입력되는 순간 >> 연산자가 입력 버퍼에서 키 값을 끌어내 변수에 저장
- 여러 개의 >> 연산자를 이용해 여러 값을 한 번에 입력받을 수 있음
요약
cin과 >> 연산자를 이용해 키를 입력받을 수 있음
키보드로 문자열 입력
C-string : null 문자로 끝나는 char 배열로서, C언어에서 사용하는 문자열 방식.
- 이때 마지막에 null 문자를 더해야하므로 배열의 크기는 문자수보다 최소한 1은 커야 한다.
- 배열의 크기에 의해 문자열 크기가 고정됨.
- cstring 혹은 string.h을 include 해야 한다.
// 예제 2-4
#include <iostream>
using namespace std;
int main()
{
cout << "이름을 입력하세요: ";
char name[11];
cin >> name;
cout << "이름은 " << name << "입니다. \n";
return 0;
}
// 예제 2-5
#include <iostream>
#include <cstring> // strcmp() 함수를 사용하기 위한 헤더 파일
using namespace std;
int main()
{
char password[11];
cout << "암호를 입력하세요: \n";
while (true)
{
cout << "암호: ";
cin >> password;
if (strcmp(password,"C++") == 0) // 문자열 비교 함수
{
cout << "로그인 되었습니다. \n";
break;
}
else
{
cout << "암호가 틀렸습니다. \n";
}
}
return 0;
}
strcmp(string1, string2) : 문자열 string1과 string2를 비교하여 참이면 0을 반환하는 함수
cin.getline(string, size, delimitchar) : 키보드로부터 읽은 값을 string이라는 배열에 size 크기로 저장한다. 이때 문자열 입력 끝을 지정하는 구분 문자는 delimitchar다.
getline(istream, string, dlim) : string 타입의 C++ 문자열을 입력 받기 위해 제공되는 함수로서, string을 구분자 dlim으로 저장한다.
string class : 문자열 연산을 위한 멤버 함수와 연산자를 제공하는 C++ 표준 라이브러리에서 제공하는 클래스.
요약
C-string
1. 정의: null 문자로 끝나는, c언어에서 사용하는 문자열 방식
2. 문법
- strcmp()
String class
1. 정의: C++에서 제공하는 문자열 클래스
2. 문법
- cin.getline(), getline()
전처리기
C/C++ 컴파일러는 컴파일 전에 우선 전처리기(preprocessor)를 실행시켜 #include 문을 모두 처리한다. 이때 전처리기는 #include 문에 지정된 헤더파일의 텍스트를 #include 문이 있던 그 자리에 삽입한다.
- #include < > : 컴파일러가 설치된 폴더에서 헤더 파일을 찾음
- #include " " : 개발자의 프로젝트 폴더나 개발자가 컴파일 옵션으로 지정한 include 폴더에서 헤더 파일을 찾음
- 이때 헤더파일에는 함수의 원형만 존재하며, 실제 코드는 lib 폴더에 저장되어 있다.
요약
전처리기
1. 정의: C++ 소스 파일을 컴파일하기 전에 헤더 파일을 읽어 C++ 소스 파일 안에 삽입할 것을 지시하는 것
2. 종류
a. #include < >: 컴파일러가 설치된 폴더에서 헤더 파일을 찾음
b. #include " ": 개발자의 프로젝트 폴더나 개발자가 컴파일 옵션으로 지정한 include 폴더에서 헤더 파일을 찾음
문제풀이: GitHub
'Language > C++' 카테고리의 다른 글
[C++] CH5 함수와 참조, 복사 (1) (0) | 2023.02.28 |
---|---|
[C++] CH4 객체 포인터, 배열, 동적 할당 (2) (0) | 2023.02.03 |
[C++] CH4 객체 포인터, 배열, 동적 할당 (1) (0) | 2023.01.31 |
[C++] CH3 클래스와 객체 (2) (0) | 2023.01.30 |
[C++] CH3 클래스와 객체 (1) (0) | 2023.01.28 |