본문 바로가기
Development/C

(C언어 기초) 1. C 프로그램의 구조와 데이터 출력 방법, main()

by eoieiie 2023. 8. 25.

main 함수의 구조


c프로스램은 함수로 만듭니다. 함수는 일정한 기능을 수행하는 코드 단위를 의미하며, 큰 프로그램일수록 함수를 많이 사용하지만 간단한 프로그램은 main 함수 하나만으로 만들기도 합니다. main  함수는 프로그램의 시작을 의미하는 아주 중요한 함수이며, 프로그램에 반드시 있어야 합니다. 

 

/*10과 20을 더하는 프로그램*/

int main(void)
{
    10 + 20;
    
    return 0;
}

 

아주 간단한 프로그램을 만들어 봤습니다. 함수에 대한 세부적인 내용은 추후에 배워보도록 하겠습니다.

 

우선 main 함수는 크게 머리(head)와 몸통(body)으로 구성됩니다. 

머리는 함수 원형이라고 하며, 함수의 이름과 필요한 데이터를 표시합니다. 

 

/*head*/

int main(void)

 

함수에서 실행할 일들은 몸통의 {}(중괄호) 안에 작성하며, 몸통의 마지막에는 return 0; 을 넣어 프로그램을 종료합니다. 

 

/*body*/

}
    10 + 20;
    
    return 0; //프로그램 종료        
}


 "/* ... */" 는 보통 여러 행을 한꺼번에 주석 처리할 때, "//" 는 특정 줄을 주석 처리할 때 사용됩니다.

 

함수에서 실행할 코드를 적을 때 주의해야 할 몇 가지 기본 규칙이 있습니다.

 

  1. 세미콜론을 사용하여 문장의 끝을 표시합니다. 이는 문장의 마침표와도 같습니다. 
  2. 한 줄에 한 문장씩 작성합니다.  이건 그냥 사회적 합의 같은 겁니다. 이렇게 하는 편이 보기 좋고 읽기도 쉽습니다. 
  3. 일정한 간격으로 들여씁니다. 적당한 간격을 띄우면 됩니다. 보통 tab(4번 띄우기)를 많이 사용합니다. 

 

출력 함수(printf)의 사용법 : 문자열 출력


화면에 데이터를 출력할 때에는 printf(print formatted) 함수를 사용합니다. 간단한 예제를 살펴보도록 하겠습니다. 

 

#include <stdio.h>  /* #stdio.h는 200여줄의 코드의 압축본이다. */ /* printf()의 선언문도 들어있음. */

int main(void)
{
    printf("Be happy");    //문자열 출력
    printf("My friend");    //문자열 출력

    return 0;
}


//실행 결과

Be happyMy friend

 

그런데 실행 결과가 좀 찝찝하죠. 분명 두 줄어 걸쳐 입력했는데, 한 줄로 출력되었습니다. 줄을 바꾸는 방법도 이어서 알아보겠습니다. 

 

제어 문자 출력(\n, \t, \b, \r, \a)


printf 함수로 출력할 때 행을 바꾸려면 제어 문자를 사용해야 합니다. 제어 문자란 문자는 아니지만 출력 방식에 영향을 주는 문자를 의미합니다. 일반 문자와 구분하기 위해 백슬래시(\)와 함께 사용합니다. 대표적인 제어 문자들은 다음과 같습니다.

  1. \n : 결과를 출력하고 줄을 바꿉니다. (new line)
  2. \t : 커서가 다음 탭 위치로 이동합니다. (tab)
  3. \b : 커서가 한 칸 왼쪽으로 이동합니다.  (backspace)
  4. \r : 커서가 첫 번째 칸으로 이동합니다.  (carriage return)
  5. \a : 벨소리를 냅니다. (alert)

다음 예제로 각 제어 문자가 어떻게 출력에 영향을 주는지 확인해 보겠습니다. 

 

#include <stdio.h>

int main(void)
{
    printf("Be happy\n");                   //"Be happy"를 출력하고 줄을 바꿈
    printf("12345678901234567890\n");       // 화면에 열 번호 출력하고 줄을 바꿈
    printf("My\tfriend\n");                 //"My"를 출력하고 tab 후에 "friend"를 입력하고 줄을 바꿈

    printf("goot\bd\tchance\n");            // goot를 출력하고 한 칸 왼쪽으로 이동 후 t를 d로 바꾸고 tab 후에 chance 를 출력하고 줄을 바꿈
    printf("cow\rW\a\n");                   //맨 앞으로 이동해서 c를 W로 바꾸고 벨소리를 내고 줄을 바꿈 
    printf("cow\rWWWW\a\n"); 
    return 0;
}


//실행결과

Be happy 
12345678901234567890
My    friend
Good    chance
Wow
WWWW

 

정수와 실수 출력


 printf함수는 기본적으로 문자열을 출력하는 함수라서, 숫자를 출력할 때는 변환 문자를 사용해서 문자열로 변환하는 과정이 필요합니다.  변환 문자는 데이터의 형태에 따라 다릅니다. 정수는 %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를 소수점 이하 6자리까지 출력(기본값)
    printf("%.1lf\n",3.45);      // %d 위치에 3.45 를소수점 이하 첫째 자리까지 출력(둘째 자리에서 반올림)
    printf("%.10lf\n",3.4);      // %lf 위치에 3.4를 소수점 이하 10자리까지 출력

    printf("%d와 %d의 합은 %d입니다.\n", 10, 20, 10 + 20);
    printf("%.1lf - %.1lf = %.1lf\n", 3.4, 1.2, 3.4 - 1.2 );
    
    return 0;
}


//실행결과

10
3.400000
3.5
3.4000000000
10과 20의 합은 30입니다. 
3.4 - 1.2 = 2.2

 

여기까지 C프로그램의 간단한 구조와  데이터 출력 방법에 대해서 알아보았습니다. 

 

댓글