강의는 KOCW에서 지정희 교수님의 강의를 들었다.
< C++ 의 특징 >
- 기존 C언어의 구조 개선 (C와 호환)
- 자료의 추상화 구조 제공
- 객제 지향 설계 및 프로그램을 위한 구조 제공
- 타입 검사 엄격
- 절차지향, 객체지향, 일반화 등 여러 프로그래밍 스타일 제공
절차지향 프로그래밍
- 데이터보다는 알고리즘이 중요
- 유지보수 어렵..
구조화 프로그래밍
- 무조건적인 점프 없앰
- 데이터와 알고리즘은 분리되어있음
객체지향 프로그래밍
-데이터와 알고리즘이 묶여있음
객체 = 데이터(필드) + 알고리즘(메소드)
프로그램 작성 과정
에디터
.cpp
컴파일러
.obj
링커
.exe
실행
< C++ 기초 사항>
기본 입출력
출력
-iostream include 해야함!
std::cout<<출력대상; // std 안에 있는 cout객체에 출력대상의 데이터를 보내라
std::cout<<출력대상1<<출력대상2<<출력대상3; // 여러개 가능
std::cout<<1<<'a'<<"String"<<std::endl; // 타입 구분X std::endl는 줄바꿈
std
과거 스타일과 구분하기 위한 위해 사용하는 이름공간 (namespace)
과거에도 cout이 있기때문
namespace
공간에 이름을 주는 행위
동일한 이름을 가진 함수가 있을 때 구별에 용이
#include<iostream>
namespace A_COM{ // A_COM namespace 정의
void function(void){
std::cout<<"A입니다";
}
}
namespace B_COM{ // B_COM namespace 정의
void function(void){
std::cout<<"B입니다";
}
}
int main(void){
A_COM::function();
B_COM::function();
} // 함수 이름은 같지만 다른 결과 출력
/*
A입니다
B입니다
*/
::
변수 앞에 붙으면 전역변수 의미
using 구문
- using namespace :: function
namespace를 function 으로 부르겠다
- using namespace std
앞으로 공간정보가 없다면 std 것이다
cout의 조작연산자
<iomanip>
-setw : 필드의 폭 설정 (1회용)
- setfill : 공백을 특정 문자로 지정
- setprecision : 소수점 이하 자리수 설정
- left, right : 왼쪽, 오른쪽 정렬
- showpoint : 0포함 소수점 출력
- oct, hex : 8,16진수 출력
setw 사용 예시
for (int i=1;i<=1000; i*=10)
cout << setw(6) <<i<<endl;
/*
1
10
1000
*/
입력
cin>>입력변수; // 입력변수에 넣어줘야하기 때문에 cout 과 > 방향이 다름
cin>>입력변수1>>입력변수2; // 여러개 가능, 공백으로 구분
cin>>val1;
문자열 입력(공백X)
<string> include 하고 int 와 같이 사용
문자열 입력(공백O)
getline(cin,변수)
#include<string> // string을 사용하기 위해 선언
string mystr;
getline(cin,mystr); // 엔터를 만날때까지 입력받음
cout<<mystr; // 출력
stringstream
<sstream> 선언
문자열을 숫자값으로 변환
stringstream(문자열)>>변수
strint mystr;
float price
int q;
stringstream(mystr)>>price; //문자열을 float로 변환
stringstream(mystr)>>q; //문자열을 int로 변환
문자열 골라내기
string mystr
getline(cin,mystr)
stringstream ss; // 객체선언
ss.str(mystr) //str()함수 사용
string str; //임시 변수 생성
while(ss>str) // 모두 출력하기 위해 while문 사용
cout<<str<<endl;
'학부내용 예습 > [ 2021 겨울 ] C++' 카테고리의 다른 글
[ C++ ] 6강. 동적할당 (0) | 2022.01.28 |
---|---|
[ C++ ] 5강. 포인터 배열, 문자열 배열, 참조자, 함수 (0) | 2022.01.26 |
[ C++ ]4강. 다차원 배열 / 실습 (0) | 2022.01.23 |
[ C++ ] 3강. 배열 / 실습 코드 (0) | 2022.01.04 |
[ C++] 1강 2강. 실습 코드 (0) | 2022.01.03 |