학교복습용/객체1

(1) 입출력연산자

브로콜리여사 2022. 12. 21. 15:45
객 체 수 업 복 습
first

using namespace std; // std:: cout, cin , endl을 std:: 없이 아무 곳에서나 쓸 수 있다.

endl; // 문장 끝마칠 때. , 한 줄 띄어쓰기.

cout, cin // 콘솔창에 input, output

 

주석 

한줄 // , 여러 줄 /**/

 

데이터타입

1) 정수형(int, char(문자열 1개여서))

 

int

(signed integer) int : 부호가 있다. 제일 앞에는 부호 나타내는 자리이고 범위는  -2의 7 제곱~ 2의 7 제곱

unsigned int :  부호가 없다. 양수만 표현. 범위는 0 ~ 2의 8 제곱

 

변수선언과 초기화

  • int a, b, c=0 // c만 0으로 초기화되었다. a, b는 쓰레기 값을 가지고 있다. 
  • const unsigned int a =1; // const는 변할 수 없다는 뜻, 즉 a는 이제 수정 불가능! ,

const unsigned int b; // 오류

b = 2; // 오류,

왜? const는 변수 선언과 정의를 초기에 동시에 해주어야 한다.

왜? const는 변수 선언과 정의를 초기에 동시에 해주어야 한다.

왜? const는 변수 선언과 정의를 초기에 동시에 해주어야 한다.

>> 해결방법

unsigned int b;

b = 3; 

  • sum = num1 + num2; // num1을 먼저 할당받음, num2를 그다음 할당받음, sum이 마지막
  • 리터럴은 코드에 있는 상수값 // a=5, cout << "~~~~"에서 5와 ~~~~~~
  • cin이 있는 값은 초기값설정을 안 해줘도 정상작동

char

< 왜 문자인데 정수형에 속하나? 아스키코드로 정수로 치환할 수 있어서 >

문자열 " " , 문자하나 ' '

\n : 줄 바꿈 , \t : tab키, \b : 원래 2번 띄어 쓰는데 1번만 , \r : 커서를 제일 앞으로 ,\" : "출력,  \' : '출력,  \\ : \출력

 

*참고

char < unsigned char < short < unsigned short < int < unsigned int < long < unsigned long < longlong < unsigned longlong

 

+ bool type 

0만 false, 0이 아니면 true

 

2) void(공백)

값이 없음을 나타내는 특별한 자료형 (함수 배울 때 유용)

 

3) 실수형(float, double)

float형

 

double형

+, -모두를 포함하기 때문에 unsigned double a; 는 사용X

 

 

sizeof

sizeof (type)

sizeof (expression) // 괄호 없어도 됨

 

연산자

나눗셈

6 / 4 = 1  // 피연산자가 정수라면 결과로 정수가 나온다. 

6.0 / 4 = 1.5 , 6 / 4.0 = 1.5 // 피연산자가 하나라도 부동 소수점이면 결과는 부동소수점으로 나온다.

 

나머지

%%%%%%%%%

정수자료형만 연산가능 (실수는 나머지가 없기 때문)

 

대입연산자 =

1)

int x;

cout << x = 14 << endl; // 14를 x에 대입

cout << x << endl; // 14 출력

 

2)

a = 5 // 같다는 의미 아니다. 5를 a에 대입한다는 뜻이다. 

 

비교연산자

== 같음

!= 같지 않음

65 != 'A' //  문자A는 아스키코드를 이용해 숫자로 변환하면 65이다. 근데 여기서는 같지 않다고 했으므로 결과는 false.

형변환

1) 암시적 형 변환

부호가 있는 게 부호가 없어진다 (int >> unsigned int) 

6.0 / 4 // 4가 double로 변화 : 더 큰 자료형으로

+ typeid(expression). name() : 자료형 이름 확인 가능

 

2) 명시적 형 변환 

static_cast <type>(expression)

static_cast <type>(expression)

static_cast <type>(expression)

static_cast <type>(expression)

static_cast <type>(expression)

static_cast <type>(expression)

static_cast <type>(expression)

static_cast <타입>(표현)

ex)  double a = 1.5 , static_cast <int> (a) // 1이 출력된다.

 

오버플로우, 언더플로우
조정자

bool (0만 false, 0이 아니면 true )

dec, oct, hex

noshowbase, showbase

showpoint

 

부동소수점

double a = 4.56789123;

 

1)

cout << fixed;

cout. precision(4); // 소수점 아래 4자리만! 

4. 5678

 

2)

cout << setprecision(6) << fixed;

4.567891

 

3) ☆소수점아래 ㄴㄴ, 총 자릿수!

cout.precision(3);

4.56

 

 

 

 

setw(10) : 공간 10칸 차지 (left, internal, right)

setfill : 공백을 무엇으로 채울 것인가? (문자하나여서 ' '홑따옴표~)

 

 

헤더파일

#include <iostream>

#include <typeinfo> // 형 변환

 

 

 

 

 

 

 

 

 

 

오류날때 참고

visual studio LNK1168: 쓰기용으로 열 수 없습니다 오류 (tistory.com)

 

visual studio LNK1168: 쓰기용으로 열 수 없습니다 오류

visual studio를 사용하다 샷건을 치고 싶은 경우 중 하나가 위와 같은 경우인데, 정말 답답하다. 항상 visual studio를 껐다 키거나 코드를 복사해 새 프로젝트에서 다시 시작하곤 했는데, 방법을 알고

skyjwoo.tistory.com