클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

상수와 데이터 출력 1 - C 언어 프로그램의 구조와 데이터 출력 방법 본문

프로그래밍 언어/C 언어

상수와 데이터 출력 1 - C 언어 프로그램의 구조와 데이터 출력 방법

huenuri 2024. 7. 30. 04:12

이제 본격적으로 C 언어 프로그래밍에 대해서 배워보기로 하자. 분량이 좀 많아서 상수와 데이터를 출력하는 부분을 두 단원에 나누어서 기록하기로 했다.

프로그래밍 언어를 배우는 일은 약속된 규칙을 배우는 것과 같다. 언어마다 규칙이 조금씩 다르다. C 언어는 모든 프로그래밍 언어의 가장 기본이 되는 언어라고 생각한다.

 

C 언어만 잘해도 C++, C#, 자바, 파이썬 등 다른 여러 언어들로 뻗어나가는 것이 가능하고 본다. C 언어에서 지켜야 할 기본 형식과 실행결과를 확인할 때 필요한 출력 함수 사용법에 대해 학습해볼 것이다.

 

들어가기 전에

 

C 프로그램은 함수의 집합이라고 할 수 있다.

함수는 특정한 작업을 수행하거나 값을 반환하는 코드 단위를 의미한다. 함수를 사용하여 크고 복잡한 프로그램을 여러 개의 작고 관리하기 쉬운 형태로 만든다.
  • 전달인자 또는 매개변수 : 함수에 입력시키는 것
  • 반환값 또는 리턴값 : 함수가 돌려주는 결과값

 

 

1. 프로그램과 main 함수 구조

🎈 main 함수 구조

main 함수는 머리, 몸통으로 구성된다. 하나의 프로그램이 반드시 하나 존재하며 소스 중 에일 먼저 실행되는 부분이다.

 

int main(void)

 

  • 반환형 : int - 반환되는 값의 자료형
  • 매개변수 : void - 반환값이 없는 함수나 매개별수가 없는 함 수는 그 위치에 비어있다는 뜻의 void를 사용
  • C 언어 : int main(void)와 int main()은 다른 의미
  • C++ : 두 개가 같은 의미
  • 함수 원형 : 함수의 이름과 필요한 데이터 등을 표시
  • return 0; C99부터는 생략 가능

 

🎈 주석문

소스 코드를 설명하는 내용을 담음

/ ~ / : 사이의 모든 내용을 주석 처리, 여러 행을 한번에
// : 해당 줄의 끝까지 주석 처리, 한 행씩

 

🎈 함수에서 실행할 일

함수에서 실행할 일(코드)을 적음

✂️ 규칙

세미콜론을 사용해 문장의 끝을 표시
한 줄에 한 문장씩 작성
일정한 간격으로 들여 쓰기
 

 

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

화면에 데이터를 출력할 때 사용한다. print formatterd라는 뜻을 가지며 일정한 형식에 따라 출력을 수행한다.

  • stdio.h : 파일의 내용을 프로그램 안에 복사
  • standard input output(표준입출력) : C 언어에서 기본으로 사용하는 입출력 함수

 

#include <stdio.h> 
int main(void) 
{ 
  printf("Be Happy"); 
  printf("My friend"); 
  return 0; 
}

 

3. 제어 문자 출력

제어문자 : 문자는 아니지만 출력 방식에 영향을 주는 문자 <이스케이프 시퀀스>

  • 제어문자를 문자열 안에 포함시키면 그 기능에 따라 출력 형태를 바꾼다
  • 두 개의 문자로 보이지만 두 개의 문자가 하나의 의미를 갖는 단일 문자

 
#include <stdio.h> 
int main(void) 
{ 
  printf("Be Ambitious\n"); 
  printf("12345678901234567890\n"); 
  printf("My\tfriend\n"); 
  printf("Goot\bd\tchance\n"); 
  printf("Cow\rW\a\n"); return 0; 
}

 

 

4. 정수와 실수 출력

printf 함수는 기본적으로 문자열을 출력한다. 숫자를 출력할 때는 변환 문자를 사용해서 문자열로 변환하는 과정이 필요하다. 변환 문자는 데이터의 형태에 따라서 다르다.

%d : decimal
%lf : long float의 줄임말

#include <stdio.h> 
int main(void) 
{ 
  printf("%d\n", 10); 
  printf("%lf\n", 3.4); 
  printf("%.1lf\n", 3.5); 
  printf("%.10lf\n", 3.4); 
  printf("%d과 %d의 합은 %d입니다.\n", 10, 20, 10 + 20); 
  printf("%.1lf - %.1lf = %.1lf", 3.4, 1.2, 3.4 - 1.2); return 0; 
}

 

 

🎈 소수점 자릿수 지정과 반올림

%lf로 실수를 출력하면 소수점 이하 6번째 자리까지 출력된다. 자릿수를 바꾸려면 %와 lf 사이에 소수점을 찍고 자릿수를 지정하면 됨

 

🎈 변환 문자 여러 개 사용하기

수식도 사용 가능


 

연습문제 풀기

 

🎯 1번 문제

다음의 문장 출력하기

오늘의 “수익률”은 10%입니다.
#include <stdio.h> 
int main(void) 
{ 
  printf("오늘의 \"수익률\"은 10%%입니다."); 
  return 0; 
}

 

 

 

🎯 2번 문제

다음의 문장 출력하기

1을 2로 나누면 0.500000입니다.
#include <stdio.h> 
int main(void) 
{ 
  printf("%d을 %d로 나누면 %lf입니다.", 1, 2, 0.5); 
  return 0; 
}

 

 

🎯 3번 문제

 

실행 결과 적기

#include <stdio.h> 
int main(void) 
{ 
  /* printf("Hello world!\n"); */ 
  printf("Be\rHappy!\nBaby"); 
  return 0; 
}

Happy

Baby


 

 

학습을 마치고

지난주에 출력 문자를 출력하는 코딩 테스트 문제를 많이 풀어서 이제 이 단원은 너무나 쉽게 느껴진다.

그래도 /r, /b 같은 문자는 지금도 좀 헤깔린다. /r은 전체 앞으로, /b는 한칸 앞으로 임을 기억하자!

그때 풀었던 문제들 중 중요한 문제들 모아서 한번 정리해봐야겠다. 출력을 하는 건 쉬워보이지만, 문자열이 들어가면 무척 어려워진다.

간단한 문제라고 쉽게 보지 않고 확실히 짚고 넘어가야겠다.