프로그래밍 언어/C++

[c++] 시작

말하는 알감자 2022. 9. 1. 21:09

c++ 시작


1. c++

: c언어 여러가지 기능 추가한 언어
c++ = c언어의 절차 지향적 특징 + class 사용하는 객체 지향적 특징

2. c++ 프로그래밍

프로그래밍 : 소스 파일 -> 실행 파일

1) 소스 파일(source file) 작성

: c++문법에 맞게 논리적으로 작성된 프로그램
원시 파일이라고 하기도 함
c++을 통해 작성된 소스 파일의 확장자는 대부분 .cpp

2) 선행처리기(preprocessor)에 의한 선행 처리

: 소스 파일 중 선행처리 문자(#)으로 시작하는 선행처리 지시문의 처리 작업
선행처리 작업은 선행처리기에 의해 처리됨
코드를 생성하는 것이 아닌, 컴파일 하기 전 컴파일러가 작업하기 좋도록 소스를 재구성해주는 역할만을 함

3) 컴파일러(compiler)에 의한 선행 처리

: 컴퓨터는 0과 1로 이루어진 이진수로 작성된 기계어만 이해 가능
소스 파일을 컴퓨터가 알아보는 기계어로 변환하는 과정을 compile이라고 함
이런 컴파일은 C/C++ 컴파일러로 수행되고 컴파일이 끝나 기계어로 변환된 파일을 오브젝트 파일(oject file)이라 함
오브젝트 파일의 확장자는 .o 나 .obj가 됨

4) 링커(linker)에 의한 링크

: 컴파일러에 의해 생성된 오브젝트 파일이 운영체제와의 인터페이스를 담당하는 시동 코드(start-up code)안 가짐
표준 라이브러리 파일도 없음
하나 이상의 오브젝트 파일 + 시동 코드 등등 을 합쳐 하나의 파일로 만드는 작업 => link

링크는 링커에의해 수행되고, 링크가 끝나면 하나의 새로운 실행 파일이나 라이브러리 파일 생성됨
여러개의 소스 파일을 작성하여 최종적으로 링크를 통해 하나의 실행 파일로 만드는 것을 컴파일이라 함  

5) 실행 파일(executable file)의 생성

: 위 과정에서 생성된 파일
실행 파일의 확장자는.exe

3. 간단한 C++ 프로그램


#include 문

#define 문


int main()

{

    명령문;

    return 문;

}

4. iostream

1) C++ 표준 입출력 클래스

: c++은 객체로 표현되서, 입출력 담당하는 수단도 객체임
c언어의 printf나 scanf처럼 c++ iostream 헤더 파일에서 표준 입출력 클래스 정의함
c++에서는 cout 객체로 출력을, cin 객체로 입력 작업 수행
c언어처럼 printf, scanf 함수로 입출력 수행 가능

 (1) cout

: 다양한 데이터를 출력하는데 사용되는, c++에서 미리 정의된 출력 스트림을 나타내는 객체

  • 문법

    
    std::cout << 출력할데이터;

    삽입 연산자(<<)는 오른쪽에 위치한 출력할 데이터를 출력 스트림에 삽입
    이렇게 삽입된 데이터는 스트림을 통해 출력 장치로 전달되어 출력됨

 (2) cin

: cin 객체는 다양한 데이터를 입력받는데 사용되는 C++에서 미리 정의된 입력 스트림을 나타내는 객처

문법추출 연산자(>>)를 통해 사용자가 입력한 데이터를 입력 스트림에서 추출하여, 오른쪽에 위피한 변수에 저장
이때 cin객체는 자동으로 사용자가 입력한 데이터를 오른쪽에 위치한 변수의 타입과 동일하게 변환시켜 줌

  • 문법

    
    std::cin >> 저장할변수;
  • 예시


#include <iostream>

using namespace std;

int main()

{

int age;

cout << "니 몇살이고!? : ";

cin >> age;

cout << age << "살 이다!" << endl;

return 0;
}
  • 결과

니 몇살이고!? : 30405

30405살 이다!

여러분의 나이를 입력해 주세요 : 스른므흔다슷

0살 이다!

age에 정수가 아닌 문자열을 입력하면 숫자가 아니라는 의미로 0을 전달함

+) c언어 표준 입출력 함수와의 차이점

c언어 - printf(), scanf() / c++ - cout>> , cin<<

  1. 삽입 연산자(<<)와 추출 연산자(>>)가 데이터의 흐름을 나타내서 좀 더 직관적!
  2. c++ 표준 입출력 객체는 데이터의 타입을 자동으로 변환 시켜 줘서 더욱 편리하고 안전!

'프로그래밍 언어 > C++' 카테고리의 다른 글

[c++] 타입  (0) 2022.09.02
[c++] c++을 시작하며  (0) 2022.09.01