▩ C언어 프로그램의 구조
1. C언어 프로그램의 구조와 개행
#include <stdio.h>
void main(){
printf("abc");
printf("def\n");
printf("123\n456\n789\n");
}
/*
abcdef
123
456
789
*/
▩ 자료 출력하기
1. 확장 문자의 이해
- '\a': 경보음 07
- '\n': 개행 0A
- '\t': 탭 코드 09
- '\000': 8진수
- '\xhh': 16진수
- '\0' : 문자 코드 0, null 문자
>>>>> 확장(제어)문자의 사용
#include <stdio.h>
void main() {
printf("\t** 월별 판매 결과 **\n");
printf("====================================\n");
printf("품목\t서울\t부산\t광주\t인천\n");
printf("------------------------------------\n");
printf("사과\t50\t40\t35\t60\n");
printf("귤\t60\t80\t75\t35\n");
printf("배\t55\t44\t33\t77\n");
printf("------------------------------------\n");
}
2. 아스키 코드표의 이해
- 7비트 코드
- 키보드의 자판은 아스키코드로 대응됨
- 8번째 비트가 1인경우 한글을 처리하는 로직을 구성 할 수 있음
3. TAB 키의 작동의 이해
- 탭은 절대 좌표를 사용하며 탭사이즈의 배수 + 1의 위치로 이동함
- 일반적으로 사이즈는 4를 이용합니다.
123456789012345678901234567890
100 1000
10 100
1 1
1,000 5,000
3,500 3,000
4. 문자열 출력 및 제어 문자 출력하기
- printf()
. %d : 10진 정수 출력
. %4d : 출력시 자리수를 지정함 숫자의 크기와 관련 없이 무조건 4자리의 공간을 확보함
자리수가 부족해도 정수 부분은 그대로 출력된다. 숫자는 오른쪽 정렬됩니다.
. %4f : 실수 출력, 정수 부분이 출력되고 소수는 무조건 6자까지 출력됨
. %4.0f: 소수점은 출력되지 않음
. %4.1f: 소수 자릿수 부족시 반올림 실행, 소수점도 자리수에 해당, 정수는 자리수에 관련 없이
무조건 출력됨, 정수2자리, 실수1자리
. %o : 8진수 출력, 영문 소문자 'o'만 가능
. %x : 16진수 출력, %X는 16진수가 대문자로 출력됨
- putchar() 함수의 사용
. 한문자를 출력합니다.
. '': 한문자를 의미
. "": 문자열을 의미, 실제 보이는 문자보다 null문자가 한자 더 있음('\0')
>>>>> 제어 문자를 통한 출력
#include <stdio.h>
void main() {
int a=5, b=9, c=1235, d=1;
int e=40, f=549, g=5, h=1160;
int i=155, j=1249, k=3, m=10;
float q=12.24f, w=45.265f, r=814.32f, t=369.254f;
printf("\t** 월별 판매 결과 **\n");
printf("======================================\n");
printf("품목\t서울\t부산\t광주\t인천\n");
printf("--------------------------------------\n");
printf("사과\t%4d\t%4d\t%4d\t%4d\n", a, b, c, d);
printf("귤\t%4d\t%4d\t%4d\t%4d\n", e, f,g, h);
printf("배\t%4d\t%4d\t%4d\t%4d\n", i, j, k, m);
printf("--------------------------------------\n");
printf("금액\t%4.1f\t%4.1f\t%4.1f\t%4.1f\n", q, w, r, t);
printf("--------------------------------------\n");
}
5. 변환문자를 통한 출력 함수: printf(변환 문자열 목록)
- %o : int <-- 8진수로 출력
- %d : int <-- 10진수로 출력
- %ld : long int, int <-- 긴 정수형 10진수 출력
- %x, %X : int <-- 16진수 출력, 대소문자 구분 출력
- %f : float, double <-- 실수 출력, 9.f는 반올림이 되어 출력이 됨
소수점은 자리수로 포함이 됨
- %e, %E : float, double <-- 실수를 지수 형식으로 출력, 1.234560e+03, 1.234560e-03
- %c : char, int <-- 한 문자 출력
- %s : char *, 배열 <-- 문자열, 배열 출력
>>>>> 진수 변환하여 출력하기
#include <stdio.h>
void main() {
int a=511;
printf("원래의 값은 %d입니다.\n", a);
printf("8진수의 값은 %o입니다.\n", a);
printf("16진수의 값은 %X입니다.\n", a);
printf("1을 더한 값은 %d입니다.\n", a+1);
printf("8진수의 값은 %o입니다.\n", a+1);
printf("16진수의 값은 %X입니다.\n", a+1);
printf("2를 더한 값은 %d입니다.\n", a+2);
printf("8진수의 값은 %o입니다.\n", a+2);
printf("16진수의 값은 %X입니다.\n", a+2);
}
/*
10 Base 2 Base 8 Base 16 Base
-------------------------------------
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
*/
>>>>> 단일문자의 출력
#include <stdio.h>
void main() {
putchar('K');
putchar('o');
putchar('r');
putchar('e');
putchar('a');
printf("\n");
putchar('S');
putchar('e');
putchar('o');
putchar('u');
putchar('l');
printf("\n");
}