프로그래밍
사용자가 어떤 값을 컴퓨터에 넣고(입력) 처리한 결과를 사용자에게 다시 제공(출력)하는 것
graph LR; A[Input] --> B{Function} B --> C(Output)
입출력 함수
- 표준 입출력 함수: 키보드와 모니터를 통해 자료를 입출력
- 파일 입출력 함수: 특정한 파일을 통해 자료를 입출력
- 저급 입출력 함수: 운영체제 내, 시스템 호출을 통해 자료를 입출력
표준 입출력 함수
형식화된 입출력
printf() 함수
- 표준 출력 장치인 모니터로 자료를 출력
- 도스창에 실행결과를 표시할 때 사용
제어문자열
- 변환기호를 사용하여 형식에 맞게 출력 가능
예제
#include <stdio.h> int main() { printf("%s\n", "종경"); printf("%s\n", "대학교"); printf("%s %s\n", "종경대학교", "서울캠퍼스"); printf("%-10s\n", "종경"); printf("%10s\n", "대학교"); return 0; } // 프로세스가 시작되었습니다.. > 종경 대학교 종경대학교 서울캠퍼스 종경 대학교 프로세스가 종료되었습니다.
scanf() 함수
- 표준 입력 장치인 키보드를 통해 자료를 입력 받을 때
기본 형태
변환기호안에 포함되는 내용이 어떤 자료 형식으로 변수에 입력되는지 결정
변수 앞에 변수의 주소를 의미하는 기호 &를 반드시 넣어야 함
예제
#include <stdio.h> int main() { int age = 0, birthyear = 0; printf("당신의 나이와 출생연도를 입력하세요.\n"); scanf("%d %d", &age, &birthyear); printf("당신은 %d년에 출생한 %d세입니다.\n", birthyear, age); return 0; } // 프로세스가 시작되었습니다.. > 당신의 나이와 출생연도를 입력하세요. 24 1995 당신은 1995년에 출생한 24세입니다. 프로세스가 종료되었습니다.
- 특수문자 입력
- 예제
#include <stdio.h> int main() { printf("\t\"안녕하세요\"\n\n"); printf("탈출기법을 제대로 사용한 예\n"); printf("\t10 %% 5 = 0 \n\n"); printf("탈출기법을 제대로 사용하지 않은 예\n"); printf("\t 10 % 5 = 0 \n"); return 0; } // 프로세스가 시작되었습니다.. > "안녕하세요" 탈출기법을 제대로 사용한 예 10 % 5 = 0 탈출기법을 제대로 사용하지 않은 예 10 = 0 프로세스가 종료되었습니다.
문자 입출력 함수
- 문자 1개를 키보드로 입력받아 출력하는 함수
- 예제 : 문자 1개를 입력받아 출력하는 예제
#include <stdio.h> int main() { char Letter_in; printf("문자 1개를 입력하세요.\n"); Letter_in = getchar(); putchar(Letter_in); printf("\n"); return 0; } // 프로세스가 시작되었습니다.. > 문자 1개를 입력하세요. v v 프로세스가 종료되었습니다.
문자열 입출력 함수
- 문자 여러개를 한번에 입력받고 출력하는 함수
- 예제 : 문자열 입력, 출력
#include <stdio.h> int main() { char Name[20]; printf("당신의 이름을 입력하세요: "); gets(Name); puts(Name); return 0; } // 프로세스가 시작되었습니다.. > 당신의 이름을 입력하세요: wansik wansik 프로세스가 종료되었습니다.
실습
1) 섭씨온도를 화씨온도로 출력하라. 섭씨는 정수로 입력, 화씨는 실수로 출력해라.
#include <stdio.h> int main() { int cel = 0; float far = 0; printf("섭씨 온도를 입력하세요."); scanf("%d", &cel); far = (cel*1.8) + 32; printf("섭씨 %d 도는 화씨 %.2f도 입니다.\n", cel, far); return 0; } // 프로세스가 시작되었습니다.. > 섭씨 온도를 입력하세요.29 섭씨 29 도는 화씨 84.20도 입니다. 프로세스가 종료되었습니다.
2) 원의 넓이를 출력해주는 프로그램을 작성해라. 반지름은 double, 원주율은 define으로 정의해서 사용한다.
#include <stdio.h> #define PIE 3.141592 int main() { double r = 0; double S = 0; printf("반지름을 입력하세요 :"); scanf("%lf", &r); S = PIE*r*r; printf("원의 넓이는 %lf이다.\n", S); return 0; } // 프로세스가 시작되었습니다.. > 반지름을 입력하세요 :3 원의 넓이는 28.274328이다. 프로세스가 종료되었습니다.
3) 가로 세로 길이를 입력받아 면적을 출력해라. 가로 세로 길이는 float로 입력 받고, 넓이도 float로 출력한다.
#include <stdio.h> int main() { float width = 0; float height = 0; printf("가로와 세로를 입력하세요 : "); scanf("%f %f", &width, &height); printf("사각형의 넓이는 %f이다.", width*height); return 0; } // 프로세스가 시작되었습니다.. > 가로와 세로를 입력하세요 : 3 4 사각형의 넓이는 12.000000이다. 프로세스가 종료되었습니다.
4) 두 정수를 입력 받아 합과 평균을 구해라. 합은 정수로, 평균은 실수로 출력한다.
#include <stdio.h> int main() { int a = 0; int b = 0; int sum = 0; double aver = 0; printf("두 정수를 입력하세요 : "); scanf("%d %d", &a, &b); sum = a + b; aver = ((double)a + (double)b)/2; printf("합은 %d, 평균은 %f", sum, aver); return 0; } // 프로세스가 시작되었습니다.. > 두 정수를 입력하세요 : 3 4 합은 7, 평균은 3.500000 프로세스가 종료되었습니다.