#include <stdio.h>
int main(void)
{
10+20; // 컴파일 하고 실행하면 아무결과도 나오지 않는다. 단지 더할 뿐 결과를 어떻게 하라는 명령이 없기 때문.
return 0;
}
main 함수는 머리와 몸통으로 구성 된다.
머리는 함수 원형이라고 하며 함수의 이름과 필요한 데이터등을 표시한다. 함수에서 실핼할 일은 몸통의 중괄호 {} 안에 작성한다. 몸통의 마지막에는 return 0;을 넣어 프로그램을 종료한다.
함수를 작성할 때의 규칙
1. 세미콜론(;)을 사용해 문장의 끝을 표시한다. - 문장의 마침표와 같은 역할. 문장이 끝났음을 인식하게 해주는 중요한 규칙.
2. 한줄에 한 문장씩 작성한다. - 한 문장을 여러줄에 작성하는 것이 가능하지만 보기좋고 쉽게 읽을 수 있게 이 규칙을 지키도록 한다.
3. 일정한 간격으로 들여쓴다.
화면에 데이터를 출력할 때는 printf 함수를 사용 (print formatted)
#include <stdio.h>
int main(void)
{
printf("Be happy"); // "Be happy" 를 출력
printf("My friend"); // "My friend" 를 출력
return 0;
}
#include <stdio.h> 는 전처리 단계에서 처리되는 문장이다. stdio.h 파일의 내용을 프로그램 안에 복사한다는 의미로 여기에는 C 언어에서 기본으로 사용하는 입출력 함수가 들어있다. (printf 함수도 여기에 포함)
기대되는 실행결과는 Be happy 밑에 My friend가 위치할 것 같지만 실제로는 Be happyMy friend 로 출력된다. 소스파일에서 줄바꿈을 한다고 실행결과에서 줄바꿈이 되는것은 아니다. 따라서 행을 바꾸려면 제어문자를 사용해야 한다.
(제어문자 : 문자는 아니지만, 출력 방식에 영향을 주는 문자를 의미)
제어 문자를 문자열 안에 포함시키면 그 기능에 따라 출력 형태를 바꾼다. 제어 문자는 일반 문자와 구분하기 위해 백슬래시( \ ) 와 함께 사용한다.
#include <stdio.h>
int main(void)
{
printf("Be happy\n"); // "Be happy" 를 출력 후 줄 바꿈
printf("1234567890\n"); // 열 번호를 출력 후 줄 바꿈
printf("My\tfriend\n"); // "My 출력 후 tab 위치만큼 이동 후 "friend" 출력 후 줄 바꿈
printf("Goot\bd\tchance\n");// "Goot" 출력 후 한칸 왼쪽이동(\b) 후 t를 d로 바꾸고 tab 위치만큼 이동(\t) 후 "chance" 출력 후 줄 바꿈
printf("Cow\rW\a\n"); // "Cow 출력 후 맨 앞의 위치로 이동하여(\r) C를 W로 바꾸고 알람(\a)을 울린 후 줄 바꿈(\n)
return 0;
}
\n : 줄 바꿈(개행, new line)
\b : 한 칸 왼쪽으로 이동(backspace)
\t : 다음 탭 위치로 이동(열을 맞춰 출력할 때 좋다.)
\r : 맨 앞으로 이동(carriage return)
\a : 경보, 벨소리(alert)
printf 함수는 기본적으로 문자열을 출력. 따라서 숫자를 출력할 때는 변환 문자를 사용해서 문자열로 변환하는 과정이 필요하다.
변환 문자는 데이터의 형태에 따라 다르고 정수는 %d, 실수는 %lf를 사용.
d는 decimal, lf는 long float의 줄임말.
#include <stdio.h>
int main(void)
{
printf("%d\n", 10); // %d 위치에 10 출력
printf("%lf\n", 3.4); // %lf 위치에 3.4 출력
printf("%.1lf\n", 3.45); // 소수점 이하 첫째 자리까지 출력(둘째 자리에서 반올림) = 3.5 출력
printf("%.10lf\n", 3.4); // 소수점 이하 열째 자리까지 출력 = 3.4000000000 출력
printf("%d과 %d의 합은 %d 입니다.\n", 10, 20, 10 + 20); // 변환 문자의 개수와 출력할 값의 개수가 일치해야 하며 앞에서부터 차례대로 출력됨.
printf("%.1lf - %.2lf = %.1lf\n", 3.4, 1.2, 3.4 - 1.2);
return 0;
}
데이터의 형태는 바꿀 수 있는 변수와 바꿀 수 없는 상수 2가지가 있다.
정수 상수 표현법.
C언어에서 8진수는 숫자 앞에 0, 16진수는 0x를 붙여 구분한다.
#include <stdio.h>
int main(void)
{
printf("%d\n", 12);
printf("%d\n", 014);
printf("%d\n", 0xc); // 실행결과는 12, 12, 12 로 출력된다.
printf("%o\n", 12);
printf("%x\n", 12);
printf("%X\n", 12); // 실행결과는 14, c, C 로 출력된다.
return 0;
}
실수 상수 표기법
0.0000314 --> 3.14 * 10^-5 --> {3.14e-5 = 0.314E-4 (C언어 표기법)} 여기서 e,E 는 밑수 10을 의미
#include <stdio.h>
int main(void)
{
printf("%.1lf\n", 1e6); // 지수 형태의 실수를 소수점 형태로 출력
printf("%.7lf\n", 3.14e-5); // 소수점 이하 일곱째 자리까지 출력
printf("%le\n", 0.0000314); // 소수점 형태의 실수를 지수 형태로 출력
printf("%.2le\n",0.0000314); // 소수점 형태의 실수를 지수 형태로 소수점 이하 둘째 자리까지 출력
return 0;
}
출력 값은 1000000.0 / 0.0000314 / 3.140000e-5 / 3.14e-5
문자와 문자열 상수 표현법
문자는 ' '(작은 따옴표), 문자열은 " "(큰 따옴표)로 묶는다.
#include <stdio.h>
int main(void)
{
printf("%c\n", 'A'); // 문자 상수 출력 (A)
printf("%s\n", "A"); // 문자열 상수 출력 (A)
printf("%c은 %s입니다.\n", '1', "first"); // 문자와 문자열을 함께 출력 (1은 first입니다.)
return 0;
}