- float형(소수점) 출력 형식

 

⚠️ 주의

fixed가 없? '정수부+소수부'(전체) 기준으로 반올림하여 출력, 

fixed가 있? '소수부' 만을 기준으로 반올림하여 출력

 

- int형 출력 형식

// cout 할 때마다 리셋되어, 사용하고 싶을 때 다시 써야함

cout.width(n) : 출력 자릿수 설정

cout.fill('') : 출력 자릿수를 맞추고 빈 자리를 무엇으로 채울건지

 

 ex)

 cout.width(2); // 2자리수 

 cout.fill('0'); // 0으로 채우기

 

 - string형 문단 전체 출력 형식

char *fgets(char *str, int numChars, FILE *stream);

 "매개 변수"

str

데이터의 스토리지 위치

 

numChars

읽을 최대 문자 수

 

stream

FILE 구조체에 대한 포인터

 

 -> fgets 함수 

   1. 입력 stream 인수에서 문자열을 읽어 str에 저장함

   2. stream의 처음부터 끝까지 or 읽은 문자 수가 numChars - 1이 될 때까지 문자를 읽음

   3. str에 저장된 결과는 null 문자와 함께 추가됨(줄 바꿈 문자가 문자열에 포함됨)

  ex)

     char data[2001];

     fgets(data, 2000, stdin);

     cout << data;

 

 

- 진수 입・출력

cin >> out >> n;     // 변수 n 8진수 입력

cout << oct << n;  // 변수 n 8진수 출력

 

 cin >> dec >> n;   // 변수 n 10진수 입력

cout << dec << n;  // 변수 n 10진수 출력

 

 cin >> hex >> n;    // 변수 n 16진수 입력

cout << hex << n;   // 변수 n 16진수 출력

 

- 대문자 출력

cout << uppercase << n;

 

- 아스키코드

알파벳 25차이

-> 소문자 65~90, 대문자 97~122

 

- 쉬프트(<<,>>) 연산자

int a=10;

printf("%d", a<<1); //10을 2배 한 값인 20이 출력

printf("%d", a>>1); //10을 반으로 나눈 값인 5가 출력

printf("%d", a<<2); //10을 4배 한 값인 40이 출력

printf("%d", a>>2); //10을 반으로 나눈 후 다시 반으로 나눈 값인 2가 출력

 

- 비트단위(bitwise) 연산자는,

~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor),

<<(bitwise left shift), >>(bitwise right shift)

ex)

예를 들어 1이 입력되었을 때 저장되는 1을 32비트 2진수로 표현하면

00000000 00000000 00000000 00000001 이고, ~1은 

11111111 11111111 11111111 11111110 가 되는데 이는 -2를 의미

 

- 최소공배수와 최대공약수

 

최대공약수(gcd) - 유클리드 호제법

int gcd(int a, int b) {
    int c;

    while (b != 0) {
        c = a % b; //나머지
        a = b; //나눌 값으로 변경
        b = c; //나머지가 나누는 값으로 변경
    }

    return a;
}

 

 최소공배수(lcm)

int lcm(int a, int b) {
    return a * b / gcd(a, b);
}

 

 

 

+ Recent posts