Transcript Document

제2장
데이터형과 표준 입출력문
문봉근
YES C 제 2 장 데이터형과 표준 입출력문
1/47
제2장
데이터형과 표준 입출력문
2.1
2.2
2.3
2.4
2.5
2.6
2.7
상수의 표현
변수의 표현
수식과 대입문
데이터형
데이터의 형 변환
표준 입출력 함수
키보드 입력함수
YES C 제 2 장 데이터형과 표준 입출력문
2/47
• C 언어에서 데이터는 상수(constant)와 변수
(variable)로 나눈다.
• 상수와 변수는 크게 문자형, 정수형과 실수형
의 데이터형을 가진다.
• 일반적으로 상수는 프로그램이 실행되기 전에
데이터형과 값을 미리 선언한 후에 실행 중에
그 값이 바뀌어지지 않는다.
• 반면 변수는 프로그램이 수행되기 전에 데이
터형을 미리 선언을 한 후에 프로그램 실행 중
에 변수에 값을 대입하여 프로그램이 수행할
수 있도록 허용하는 것을 말한다.
YES C 제 2 장 데이터형과 표준 입출력문
3/47
2.1 상수의 표현
• 상수는 프로그램 중에 그 값이 명시되어 변하지 않는
것으로서 문자(character) 상수, 정수형 상수, 실수형
상수, 문자열(character string) 상수가 있다.
• 실수형 상수에는 십진형 표기와 지수형 표기가 있다.
• 문자 상수는 ‘A’와 같이 ‘’(작은따옴표)로 묶어서 문자
를 표현한다.
• 문자열 상수는 “ ”(큰따옴표)로 나타내는데, “1234”
는 숫자가 아니라 문자열로 다룬다.
• 변수와 상수는 프로그램 시작부분의 선언부에 선언한
다.
YES C 제 2 장 데이터형과 표준 입출력문
4/47
2.1.1 문자 상수
• 문자상수는 아스키(ASCII)코드의 한 문자를
표현을 위해 작은 따옴표로 묶어 나타낸다.
• 문자 상수는 한 바이트로 표현된다.
– ① 작은 따옴표로 묶인 문자이다.
• (예) ‘a’
– ② 코드 값을 직접 작은 따옴표로 묶어서 표현한다
•
•
(예) ‘\246’, ‘\x9B’
여기서, ‘\x’, ‘\X’ 16진 표현이다.
YES C 제 2 장 데이터형과 표준 입출력문
5/47
– ③ 아스키코드에서 특수문자, 제어문자 영역
(0x00~0x19)은 문자상수 표현이 어려우므로 기능
코드를 사용하여 문자 상수로 프로그램 중에 표현
할 수 있다.
– 기능 코드들을 escape 문자라 하며 표 2.1과 같다.
YES C 제 2 장 데이터형과 표준 입출력문
6/47
표 2.1 escape 문자
escape
문자
\a
\b
\f
\n
\r
\t
\v
\'
\"
\\
\?
\0dd
\xhhh
\0
YES C
기능
Bell (alert)
Backspace
Formfeed
New line
Carriage return
Horizontal tab
Vertical tab
Single quotation mark
Double quotation mark
Backslash
Literal question mark
ASCII character in octal notation
ASCII character in hexadecimal notation
Null character
7/47
제 2 장 데이터형과 표준 입출력문
2.1.2 정수 상수
① 소수점이 없는 수치, 기본형은 signed int이다.
② 부호가 없는 정수 상수인 경우 수치 뒤에 ‘u’, ‘U’의
태그(tag)를 붙인다.
③ 수치의 크기가 int의 한계를 넘으면 자연히 long int로
인식한다.
④ 절대값이 작은 수치에 태그를 붙여 long int로 명시 가
능하다.
⑤ unsigned long int형 상수에는 끝에 ‘ul’ 혹은 ‘UL’
을 붙인다.
⑥ 정수표현에서 ‘0’은 8진 표현이고 ‘0x’이나 ‘0X’는
16진 표현이다.
YES C 제 2 장 데이터형과 표준 입출력문
8/47
표 2.2 정수 상수의 표현
표현법
사용 예
설명
123, 1024 숫자 0~9를 사용하고 0으로 시작
할 수 없다.
016, 077 숫자 0~7를 사용하고 0으로 시작
8진 표현
한다.
0x1A, 0XFF 숫자 0~7와 문자 A~F를 사용하
16진 표현
고 0x으로 시작한다.
± 부호 없이 양수만 표현한다. 숫
12U, 077u, 자 뒤에 u 또는 U를 붙인다.. 표
unsigned 형
0XFFU
현 범위는 2바이트(0~65535) 양
수이다.
077l,
숫자 뒤에 l 또는 L을 붙인다. 표
long 형
0XFFL
현 범위는 4바이트이다.
10진 표현
YES C 제 2 장 데이터형과 표준 입출력문
9/47
2.1.3 실수 상수
① 기본형은 double형이다.
② float형 상수는 ‘f’ 혹은 ‘F’의 태그를 사용한
다.
③ long double형은 ‘l’나 ‘L’의 태그를 붙인다.
④ 십진형 표기와 지수형 표기가 있다.
YES C 제 2 장 데이터형과 표준 입출력문
10/47
표 2.3 실수 상수의 표현
표현법
사용 예
12.345,
십진형 표현
.314,
지수형 표현
3.14E-3
1.313f,
부동소수형
3.14E-3F
long double 1.313l,
형
3.14E-3L
설명
소수점을 사용하여 표현한
다.
10진수와 e(E)를 사용하여
표현한다. 3.14×10-3과 같
다.
숫자 뒤에 f 또는 F을 붙인
다.
숫자 뒤에 l 또는 L을 붙인다.
YES C 제 2 장 데이터형과 표준 입출력문
11/47
2.1.4 문자열 상수
문자열상수(character string constant)는 일련의 문자들
의 모임을 말하며, 다음과 같이 표현된다.
① 문자열은 “ ”(큰따옴표)로 표현한다.
② 문자열은 아스키 문자들의 끝에 널(Null) 문자가
첨가된다. 예를 들어 “abc"는 3개의 문자와 문자열의
알리는 널 문자를 포함하므로 실제 크기는 4바이트이
다.
③ “"는 문자열의 길이가 0인 널 스트링(null string)
이다. 실제 문자열의 크기는 1바이트이다.
YES C 제 2 장 데이터형과 표준 입출력문
12/47
표 2.4 여러 가지 상수의 예
데이터 형
문자
상수
char
signed int
정수 signed long
형
상수 unsigned int
unsigned long
실수
형
상수
상수 예
'a', 'b', '\xb3', '\n'
132, -743, 0xf3c
-74L, 2378l, -3000000000, 0xFFFFL
74u, 2378u, 0274u
74ul, 2378ul, 0x2e4ul
float
double
long double
0.1f, -20.5f, 2.f, 13e1F, -3.57E-02f
0.1, -20.5, 2., 13e1, -3.57E-02
0.1l, -20.5L, 2.l, 13e1L, -3.57E-02L
문자열 상수
"abc", "0", " ", "423"
YES C 제 2 장 데이터형과 표준 입출력문
13/47
2.2 변수의 표현
2.2.1 변수의 선언
• 프로그램 상의 명령문이 실행됨에 따라
값이 바뀔 수 있는 것을 변수(variable)
라 한다.
• 변수는 항상 프로그램의 본문이 실행되
기 전에 정의를 한 후 사용해야 한다.
• 변수 선언은 변수를 위한 기억공간을 할
당하고 변수명과 변수가 가질 데이터형
을 지정하는 것을 말한다.
YES C 제 2 장 데이터형과 표준 입출력문
14/47
변수를 정의하는 방법
• 문법
– 데이터형 변수명[=초기값], [ 변수명[=초기값] ...] ;
• 변수 정의는 변수가 가질 데이터형과 변수명
을 위한 식별자를 지정한다.
• 변수에 초기값을 지정하려면 ‘=’ 다음에 초기
값이나 수식을 쓴다.
• 데이터형이 같은 변수들을 연속적으로 한꺼번
에 정의할 수 있다.
YES C 제 2 장 데이터형과 표준 입출력문
15/47
변수명이나 상수명, 함수명 등으로 사용하
는 식별자를 지정하는 규칙
① 첫 문자는 영문자로 시작해야 된다.
② 변수명의 길이는 31자까지 유효하다.
③ 언더바(_)는 변수명의 일부로 사용할
수 있으며 첫 글자에도 올 수 있다.
④ 키워드(if, int, for, do....)는 변수명으
로 사용할 수 없다.
⑤ 대문자와 소문자는 다른 문자로 구분한
다.
YES C 제 2 장 데이터형과 표준 입출력문
16/47
표 2.5 변수명의 바른 예와 틀린 예
올바른 변수의 예
avg_12
sum
ptr1
ptr2
JUMSU
key_item
잘못된 변수의 예
if
for
67kk
+hit
?pp
jan-item
YES C 제 2 장 데이터형과 표준 입출력문
→
→
→
→
→
→
예약어 사용
예약어 사용
숫자로 시작
특수문자(+)사용
특수문자(?)사용
중간에 – 사용
17/47
변수명을 붙일 때 신경쓰자
① 좋지 않은 예
int i, j;
//FORTRAN의 i, j, k, l ,m, n
char a, b, c;
char *n, *q, *r;
float x, y z;
② 좋은 예
char *CurrentDirectory;
int TotalFileNumber;
③ 함수 예
int Factorial(int n)
{
if( n==0)
return 1;
else
return (Factorial(n-1)*n);
}
YES C 제 2 장 데이터형과 표준 입출력문
18/47
변수명을 붙일 때 신경쓰자(계속)
④ 접두사
접두사와 접미사를 사용하는 것은 의미를 명확하게 하
고 또한 프로그램의 일관성을 부여할 수 있다.
PutImage, SetColor, GetCurrenFileName, ....
⑤ 기타
■ 의미가 어렵거나 분명하지 않은 단어는 사용을 되
도록 피하도록 한다.
HandleCalculation, ProcessData, ...
■ 루틴이 하는 일을 모두 설명할 수 있어야 한다. 루
틴 이름과 관련이 없는 연산들은 그 루틴에 포함되
어서는 안된다.
YES C 제 2 장 데이터형과 표준 입출력문
19/47
변수명을 붙일 때 신경쓰자(계속)
■ 루틴명의 길이는 최적의 평균 길이는 9~15자이다.
그러나 평균적으로 현실적인 이름은 15~20자가
적당하다.
■ 이름짓기를 위한 규칙을 정한다. 특히 여러 사람이
프로그래밍 프로젝트에 참가할 경우 이름짓기에
관한 규칙을 제정해야 한다.
=> 프로그램의 표준화 및 일관성
YES C 제 2 장 데이터형과 표준 입출력문
20/47
2.2.2 변수의 초기화
• 선언한 변수는 프로그램 실행도중에 수
식에 따라 값이 변할 수 있다.
• 처음에 변수를 미리 초기화하여 사용할
수도 있다.
YES C 제 2 장 데이터형과 표준 입출력문
21/47
예제 2.6 다음 프로그램은 문자 변수를 선언하고,
계산하는 프로그램이다. 실행 결과를 분석하시오.
#include <stdio.h>
#include <conio.h>
void main(void)
{
char c ='y';
int i, a=97;
printf(" %c \n",c);
printf(" %d \n",c);
printf(" %d \n",'A'+'C');
printf(" %c %c \n",c,c+1);
printf("%c\n",a);
for(i=a;i<=122;i++)
printf("%c",i);
}
YES C 제 2 장 데이터형과 표준 입출력문
22/47
2.3 수식과 대입문
• 변수명에 값을 기억시키는 방법
– 변수 선언시 초기값을 지정하는 방법
– 대입문에 의한 방법
– 입력함수에 의한 방법
• 대입문에 의한 방법은 상수, 변수, 함수로 구
성된 연산의 수식을 미리 지정한 변수에 대입
하는 것을 말한다.
• 예)
– y=x+1;
– 변수 x가 갖고 있는 값에 1을 더해서 그 결과를 y
에 대입하라는 의미이다.
– ‘=’은 대입연산자이다.
YES C 제 2 장 데이터형과 표준 입출력문
23/47
예제 2.8 다음은 대입문을 변형하여 프로그램 한
예이다. 프로그램을 분석하시오.
#include <stdio.h>
#include <conio.h>
void main(void)
{
int i, j, k;
i=j=k=10;
printf("i = %d, j = %d, k = %d\n",i, j, k);
k = (i=20) + (j=40); /* 대입문 변형 */
printf("i = %d, j = %d, k = %d\n",i, j, k);
}
YES C 제 2 장 데이터형과 표준 입출력문
24/47
2.4 데이터 형(data type)
• C언어에서 제공하는 기본데이터형
– 정수형
– 실수형(부동소수점형, 浮動小數点形)
– 문자형
• 각 데이터형은 그 표현 범위가 제한되어
있으며 컴파일러에 따라서 제한 범위가
다를 수도 있다.
YES C 제 2 장 데이터형과 표준 입출력문
25/47
2.4.1 정수 데이터형
• 정수는 2byte로 표현되는 signed int형
을 기본으로 한다.
• int 보다 큰 범위의 정수를 다루기 위한
signed long int형도 있다.
• long으로 간단히 표현할 수 있다.
• 음수가 사용되지 않는 카운터와 같은 데
이터에서는 unsigned int형을 사용한다.
YES C 제 2 장 데이터형과 표준 입출력문
26/47
표 2.6 정수(int)형의 표현 범위(Visual C++ 기준)
int형의 종류
Byte 수
int
signed int
unsigned int
short int
signed short int
unsigned short int
long int
signed long int
unsigned long int
4
4
4
2
2
2
4
4
4
표현 범위
-2147483648
-2147483648
0
-32768
-32768
0
-2147483648
-2147483648
0
YES C 제 2 장 데이터형과 표준 입출력문
-
2147483647
2147483647
4294967295
32767
32767
65535
2147483647
2147483647
4294967295
27/47
2.4.2 문자 데이터형
char 형의 종류
Byte 수
표현 범위
char
signed char
unsigned char
1
1
1
-128 - 127
-128 - 127
0 - 255
YES C 제 2 장 데이터형과 표준 입출력문
28/47
2.4.3 실수 데이터형
• 실수는 float, double, long double형이 있으
며 기본형은 double형이다.
• float형은 전체 32bit로 구성되어 있으며, 부
호 1비트 지수 8비트, 가수 23비트의 3부분으
로 구분된다.
• float형의 정확도는 10진수의 7.2자리로 표현
하며 수치의 크기는 10+38까지 나타낸다.
• float형에서 지수부와 가수부를 확장한
double형과 long double형이 있다.
YES C 제 2 장 데이터형과 표준 입출력문
29/47
IEEE 754에 정의된 float형의 내부표현
S
1
지수부
8 bit
가수부
23 bit
표 2.8 부동소수점(float)형의 표현 범위 (Visual C++ 기준)
데이터 형
Byte 수
표현 범위
float
double
long double
4
8
8
3.4E-38 - 3.4E+38
1.7E-308 - 1.7E+308
1.7E-308 - 1.7E+308
YES C 제 2 장 데이터형과 표준 입출력문
30/47
예제 2.9 컴파일러가 제공하는 변수의 크기를 알아
보는 프로그램이다.
#include <stdio.h>
void main()
{
int n;
char c;
long p;
float f;
double d;
printf("%d
printf("%d
printf("%d
printf("%d
printf("%d
}
\n",
\n",
\n",
\n",
\n",
sizeof(char));
sizeof(int));
sizeof(long));
sizeof(float));
sizeof(double));
YES C 제 2 장 데이터형과 표준 입출력문
31/47
2.5 데이터 형 변환
• 데이터의 형 변환
– 자동 형 변환
– 강제 형 변환
• 자동 형 변환
– 대입 연산시 우측의 수식 결과값을 좌측의 데이터
형으로 변환하여 배정할 때 발생
– 산술 연산시 두 오퍼랜드의 데이터의 형이 다른 경
우에 발생
– 데이터형이 큰 쪽으로 변환
• 강제 형 변환
– cast 변환 :
• (형) 수식;
• 2(형)
변수;
YES C 제
장 데이터형과
표준 입출력문
32/47
예제 2.11 자동 형 변환과 강제 형 변환
#include <stdio.h>
void main(void)
{
char a='A';
int b=20, c, d=50, e=30;
float f;
c=a+b;
/* 자동 형변환 */
f=(float)d+(float)e; /* 강제 형변환 */
printf("c=%d \n", c);
printf("f=%f \n", f);
}
YES C 제 2 장 데이터형과 표준 입출력문
33/47
2.6 표준 입출력 함수
• 입력 : 데이터를 컴퓨터 내부에 기억시키는 것
• 출력 : 내부에 기억된 내용을 컴퓨터 외부에
나타내는 것
• C언어에서 표준 입출력 함수 : printf, scanf
• 표준 입출력 함수기 있는 헤더 파일
– #include <stdio.h>
• 헤더 파일 : 함수의 프로토 타입을 정의해 두
고, 인수의 개수와 형(type)을 검사하여 프로
그램의 안정성을 보장한다.
YES C 제 2 장 데이터형과 표준 입출력문
34/47
2.6.1 printf
• printf 함수는 화면에 문자열이나 변수 값
을 일정한 형식으로 출력하는 함수이다.
• 형식
– printf("형식지정 문자열", 변수1, 변수2, 변수3,...);
– 예)
• printf("%5d", a);
YES C 제 2 장 데이터형과 표준 입출력문
35/47
표 2.9 printf 형식지정 문자열
형식
%d, %I
사용기능
기호 있는 10진 정수
%o
부호 없는 8진수(앞에 0이 붙지 않음)
%x, %X
부호 없는 16진수(앞에 0이 붙지 않음)
%u
부호 없는 10진 정수
%c
부호 없는 정수형으로 변환된 문자
%s
char * : 문자열 s를 출력
%f
double 형의 출력
%e, %E
[-]m.dddddde±exx 또는 [-]m.ddddddE±Exx의 형식으
로 출력
%p
포인터로 출력
%%
%로 출력
YES C 제 2 장 데이터형과 표준 입출력문
36/47
표 2.10 printf 정리기호
문자
-
왼쪽 끝을 맞추어 정렬
+
숫자 앞에 부호를 표시
Space
0
#
숫자
의미
첫 문자가 -부호 또는 공백이 된다.
칸수에 맞게 앞에 0을 출력한다.
∙0 : 첫 자리가 0
∙x or X : 0x or 0X가 앞에 출력
∙e, E, f, g or G : 소수점이 항상 출력
∙g와 G의 경우 연속된 0을 없애지 않는다.
∙출력될 최소 자리수
∙자리수가 큰 경우 : 숫자 무시
∙자리수가 작은 경우 : 오른쪽 정렬(왼쪽정렬로 지정된 경우는
왼 쪽 정렬)
∙나머지는 공백으로 되며, 0으로 지정된 경우는 0으로 채워짐.
.
앞의 수는 전체 자리수, 뒤의 수는 소수이하 자리수
h
short
l
long
YES
장 데이터형과
L C 제 2long
double 표준 입출력문
37/47
예제 2.12 printf 함수를 사용하여 여러 가지 출력 예
#include <stdio.h>
void main() {
int i=100, j;
j = &i;
//실행 결과
printf("%d\n",123);
//123
printf("%5d\n",345);
// 345
printf("%05d\n",345);
//00345
printf("%13u\n",4239109949); //
4239109949
printf("%0d\n",567);
//567
printf("%05x\n",507);
//001fb
printf("%5x\n",507);
// 1fb
printf("%#5x\n",507);
//0x1fb
printf("%6o\n",507);
//
773
printf("%#6o\n",507);
// 0773
printf("%0x\n",507);
//1fb
printf("%-5d\n",678);
//678
printf("%6.1f\n",789.38);
// 789.4
printf("%10.1e\n",789.38);
// 7.9e+002
printf("%7.1f\n",789.45);
// 789.5
printf("%p\n",&i);
//0012FF7C
printf("%20s\n","abcdefg789.45"); //
}
38/47
YES C 제 2 장 데이터형과 표준 입출력문
2.6.2 scanf
• scanf 함수는 키보드로부터 데이터를 직
접 입력하는 기능을 가진 함수
• 형식
– scanf("형식지정 문자열", 변수1, 변수2, 변수
3,........);
– 예)
• scanf("%d", &a);
YES C 제 2 장 데이터형과 표준 입출력문
39/47
표 2.11 scanf 형식지정 문자열
문자열
의 미
%d
10진 정수
%i
정수 : 8진수 또는 16진수 일 수도 있다.
%o
8진수 정수(앞에 0이 없는 형)
%u
부호 없는 10진 정수
%x
16진 정수(앞에 0이 붙을 수도 있음)
%c
문자 : 정해진 길이가 될 때가지 문자를 읽어 들인다. \0이
붙지 않는다. 공백은 무시.
%s
공백 없는 문자열, \0으로 끝나는 문자열의 포인터를 사용
%e,%f,%g
부동소수점
%p
포인터 값
%n
읽혀질 문자의 개수를 넘겨준다.
[…]
[] 속에 있는 문자들과 일치하는 가장 긴 문자열 입력
[^…]
[] 속에 있는 문자들과 일치하지 않는 가장 긴 문자열 입력
%%
입력에 %가 그냥 들어올 수 있다.
YES C 제 2 장 데이터형과 표준 입출력문
40/47
예제 2.13 scanf 함수로 입력하기
#include <stdio.h>
void main( void )
{
int
i, result;
float fp;
char c, s[81];
printf( "정수 실수 문자 문자열을 입력하시오\n");
result = scanf( "%d %f %c %s", &i, &fp, &c, s );
printf( "\n입력된 데이터의 개수 = %d\n",result);
printf( "입력결과 : %d %f %c %s\n", i, fp, c, s);
}
YES C 제 2 장 데이터형과 표준 입출력문
41/47
예제 2.14 printf로 scanf 입력에 대한 명시 예
#include <stdio.h>
void main(void)
{
int a;
float b;
char c;
/* 정수, 실수, 문자형 선언 */
printf(" input(integer)==>");
scanf("%d", &a);
/* 정수입력 */
printf("\n input(float)==>");
scanf("%f", &b);
/* 실수입력 */
printf(" a = %d, b = %f\n", a, b); /* 출력 */
}
YES C 제 2 장 데이터형과 표준 입출력문
42/47
예제 2.15 두 수(정수)를 입력받아 출력하는 프로그램을 작성하시오
#include <stdio.h>
void main(void)
{
int a, b;
printf(" input(integer)==>");
scanf("%d", &a);
printf("\n input(float)==>");
scanf("%d", &b);
printf(" a = %d, b = %d\n", a, b);
}
YES C 제 2 장 데이터형과 표준 입출력문
43/47
예제 2.16 다음 프로그램의 실행 결과를 분석하시오
#include <stdio.h>
void main(void)
{
printf(“%d \n”, 12345);
printf(“%7d \n”, 12345);
printf(“%07d \n”, 12345);
printf(“%e \n”, 12345.123);
printf(“%10.3e \n”, 12345.123);
printf(“%4.2f \n”, 12345.123);
printf(“%010.2f \n”, 12345.123);
printf(“%d \n”, 123456789);
printf(“%ld \n”, 123456789);
}
YES C 제 2 장 데이터형과 표준 입출력문
44/47
예제 2.17 miles를 kilometers로 바꾸는 프로그램을 작성하시오
1 mile = 1.609 km
#include <stdio.h>
#define KMS_PER_MILES 1.609
void main(void)
{
float miles, kms;
printf(“\t\tinput(miles) ==> ");
scanf("%f", &miles);
kms = KMS_PER_MILES * miles;
printf("\t\t %f mile = %f km\n“, miles, kms);
}
YES C 제 2 장 데이터형과 표준 입출력문
45/47
예제 2.18 다음 프로그램을 분석하시오
#include <stdio.h>
void main(void)
{
int a = 123;
float f = 456.789;
printf(“a = %d\t”, a);
printf(“a = %10d\n”, a); /* 전체 10자리에서 오른쪽을 기준 */
printf(“a = %-10d\t”, a); /* 전체 10자리에서 왼쪽을 기준 */
printf(“a = %3d\n”, a);
printf(“float f = %f\t”, f);
printf(“float f = %12.5f\t”, f);
}
YES C 제 2 장 데이터형과 표준 입출력문
46/47
2.7 키보드 입력 함수
• 키보드로부터 한 문자 또는 문자열을 입
력 받고 이를 출력하는 함수들이다.
• getchar()함수 : 한 문자를 입력
• putchar()함수 : 한 문자를 출력
• gets()와 puts()는 문자열을 입력 또는
출력
YES C 제 2 장 데이터형과 표준 입출력문
47/47
• int getchar( );
– 키보드로 하나의 문자를 입력하는 함수
– 리턴 값은 키보드의 읽은 문자
– 화일 종료시 EOF 반환
• int putchar( );
– 화면에 하나의 문자를 출력하는 함수
– 오류시 EOF 반환
• int *gets(char *str );
– 키보드로 1행을 읽어서 str에 저장
– 리턴 값 : str내용 반환
– 파일 종료나 오류시에 NULL 반환
• int puts(char *str );
– 화면에 한 행을 출력하고, 출력 행을 바꾼다.
– 정상 처리시 : 0이 아닌 값 반환
– 오류시 : EOF 반환
YES C 제 2 장 데이터형과 표준 입출력문
48/47
예제 2.20 getchar, putchar를 이용한 한 문자
입출력.
#include <stdio.h>
void main(void)
{
char c;
c = getchar(); /* 키보드에서 한 문자 입력 */
putchar();
/* 화면에 한 문자 출력 */
}
YES C 제 2 장 데이터형과 표준 입출력문
49/47
예제 2.21 gets, puts를 이용한 문자열 입출력.
#include <stdio.h>
void main(void)
{
char c[100];
gets(c);
puts(c);
}
/* 키보드에서 문자열 입력 */
/* 화면에 문자열 출력 */
YES C 제 2 장 데이터형과 표준 입출력문
50/47
예제 2.23 소문자로 입력된 문자를 대문자로 출력
하는 프로그램
#include <stdio.h>
void main(void)
{
char c;
printf("소문자 한 개를 입력하시오\n“);
c=getchar();
c= c - 32; /* 소문자를 대문자로 변환 */
putchar(c);
putchar('\n');
}
YES C 제 2 장 데이터형과 표준 입출력문
51/47