C/C++ で働かす Raspberry Pi 3
C/C++ 로 작동시키는 Raspberry Pi 3
8.string 스트링
vector와 닮아 있고, 크게 다른 부분은 문자열의 끝에 널문자('\0')가 들어갑니다.
---------------
string str(10,'n'); -> nnnnnnnnnn
-> str=string(10,'n'); 으로 표현 가능합니다.
str.empty() -> 비어있으면 1 (true), 아니면 0 (false)
str.size() -> 문자수 -> 10
-> str.length() 도 같은 의미 입니다.
---------------
9.enum 열거형
사용자 정의 타입, 정수값에 대칭되는 식별자를 지정
---------------
enum games {MineCraft, StarCraft, Tetris};
games g=StarCraft; -> g의 값은 1입니다.
g=2; -> Error
-> games g=StarCraft; 는 const int g=1; 과 같은 의미입니다.
---------------
10. sizeof
객체의 메모리점유 비트수를 반환합니다.
---------------
int num=10000;
cout << sizeof(num) << endl; -> 4
---------------
11.try throw catch
---------------
#include <iostream>
using namespace std;
int main(void)
{
int num;
cout << "Please input number(1-10)" << endl;
cin >> num;
try
{
if(num<1 || num>10)
throw 1;
}
catch(int e)
{
string eVal;
switch(e)
{
case 1:
eVal="Input error!";
break;
default:
eVal="Undefined error!";
break;
}
cout << eVal << endl;
return e;
}
cout << "Good number: " << num << endl;
return 0;
}
catch(type arg)로 형식과 변수를 자유롭게 가능하니 변경해봤습니다.
#include <iostream>
using namespace std;
int main(void)
{
int num;
cout << "Please input number(1-10)" << endl;
cin >> num;
try
{
if(num<1 || num>10)
throw "Input error!";
}
catch(char const* str)
{
cout << str << endl;
return 1;
}
cout << "Good number: " << num << endl;
return 0;
}
catch(char const* str) 부분을 catch(string str)으로 하면
terminate called after throwing an instance of 'char const*'
에러가 발생했습니다. ( Dev-C++ 5.11)
---------------
12.goto
프로그램실행의 흐름을 변경합니다.
---------------
#include <iostream>
using namespace std;
int main(void)
{
cout << "HA" << endl; -> "HA" 출력
cout << "HA" << endl; -> "HA" 출력
cout << "HA" << endl; -> "HA" 출력
goto skip; ->처리의 흐름을 skip: 위치로 이동시킵니다.
cout << "HO" << endl; -> "HO"는 출력되지 않습니다.
skip: cout << "HA" << endl; -> "HA" 출력
cout << "!!!" << endl; -> "!!!" 출력
for(int i=0;i<10;i++)
{
if(i==3) goto skip2; ->처리의 흐름을 skip2: 위치로 이동시킵니다. 3은 출력되지 않습니다.
if(i==9) break; -> 9이면 루프를 종료하니 8까지만 출력이 됩니다.
cout << i << endl;
skip2:;
}
return 0;
}
HA
HA
HA
HA
!!!
0
1
2
4
5
6
7
8
---------------
Part2 ..끝..
'C++' 카테고리의 다른 글
C++ 함수에 값전달, 포인터전달, 참조전달 (0) | 2019.02.07 |
---|---|
Part 3: 함수오버로드, 함수에 배열전달,포인터,참조자..C++ 책 반납 전 소소한 정리(C/C++ 로 작동시키는 Raspberry Pi 3) (0) | 2019.02.06 |
Part 1: 메모리동적할당-해제,cmath,bitset....C++ 책 반납 전 소소한 정리(C/C++ 로 작동시키는 Raspberry Pi 3) (0) | 2019.02.05 |
Xcode의 c++프로젝트에서 ofstream으로 파일작성이 안될때 처리 (0) | 2019.02.05 |
C++ 배열 초기화 std::fill, std::fill_n .. 정리 (0) | 2019.02.04 |