• 검색 결과가 없습니다.

◉ 1. 표준입력함수 (1)

N/A
N/A
Protected

Academic year: 2022

Share "◉ 1. 표준입력함수 (1)"

Copied!
18
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

현승일 교수

2주차 2강. 입출력 함수(2)

(2)

학습내용

학습목표

1. 표준 입력 함수 2. 입력 및 출력 버퍼

1. 표준 입력 함수에 대하여 설명할 수 있다.

2. 입력 및 출력 버퍼에 대하여 설명할 수 있다.

(3)

표준 입력 함수

표준 입력장치(키보드)에서 문자, 정수, 실수, 문자열을 입력하여 변수에 저장하는 함수

1. 표준 입력 함수(1)

getchar(); 한 문자를 입력하는 함수 gets(); 문자열 입력 함수

scanf(); 다양한 자료형을 입력하는 함수

키보드로부터 값을 입력하는

함수들

(4)

getchar(), gets() 함수

1. 표준 입력 함수(2)

getchar() 함수

- 한 문자를 표준 입력 장치인 stdin(키보드)에서 입력 (형식) int getchar();

(예) ch = getchar(); //키보드로 부터 한문자 반환

gets() 함수

- 문자열을 표준 입력 장치인 stdin(키보드)에서 입력 (형식) char *gets(배열변수)

(예) int name[20]; gets(name); // name 배열에 저장

(5)

gets() 함수 활용 예

1. 표준 입력 함수(3)

(6)

<형식>

scanf (“입력양식”, &변수1, &변수2,… );

1. 표준 입력 함수(4)

scanf() 함수

의미

- 키보드로 부터 단일문자, 정수 등을 입력 받아 반환하는 함수 - 사용하기 위해서는 stdio.h 헤더파일을 포함해주어야 함

scanf() 함수의 변환 문자

- %d(정수형), %ld(long 정수형), %f(실수형),

%lf(double 실수형), %c(단일문자형), %s(문자열)

(7)

1. 표준 입력 함수(5)

scanf() 함수

#include <stdio.h>

main() {

int num;

scanf(“%d”, &num); // 하나의 10진 정수를 입력받음 printf(“input num = %d \n”, num);

}

반드시 입력 받는 변수의 주소를 지정해 주어야 함 (& 주소연산자)

(8)

1. 표준 입력 함수(6)

scanf() 함수의 형식 지정자

코드 형식

%c 문자를 읽음

%d, %i 10진수로 된 정수를 읽음

%e 실수를 읽음

%f 실수를 읽음(float)

%g 실수를 읽음

%o 8진수로 된 부호가 없는 정수를 읽음

%s 문자열을 읽음

%x 16진수로 된 부호가 없는 정수를 읽음

%p 포인터를 읽음

%n 지금까지 읽어 들인 문자들의 수에 해당하는 정수 값을 받아들임

%u 10진수로 된 부호가 없는 정수를 읽음

%[] 문자들을 찾음

%lf 실수를 읽음(double)

%Lf 실수를 읽음(long double)

(9)

1. 표준 입력 함수(7)

scanf_s() 함수

scanf() 는 문자열 입력 시 배열의 크기를 넘어가는 경우 배열의 경계를 검사할 수 없다는 단점

문자열 입력 시 입력데이터가 제한된 크기 이상으로 입력이 되면 보안상의 문제가 발생될 수 있음

visual studio 2012 이후에는 scanf() 사용 시 오류가 뜨는 경우가 있음

(10)

1. 표준 입력 함수(8)

scanf_s() 함수

문자나 문자열 입력 시 입력데이터의 보안을 위하여 입력되는 크기를 주어, 크기 이상의 데이터를 변수가 저장하지 않도록 함

(형식)

scanf_s(“자료형 지정자”, &변수명, 크기);

scanf_s(“%c”, &ch, sizeof(char) );

(11)

1. 표준 입력 함수(9)

scanf_s() 함수 실행 예

(12)

1. 표준 입력 함수(10)

gets(), scanf() 함수 사용 시 오류 무시

1) pragma 지시자 사용

2) 프로젝트 속성 값 바꾸기

- 다음과 같이 [프로젝트] → [속성] 페이지 열기 [구성속성] → [C/C++] → [전처리기] 항목 중 [전처리기 정의]에 다음과 같이 입력

#pragma warning(disable:4996) ← 컴파일러에게4996에해당하는경고오류를무시하게함

_CRT_SECURE_NO_WARNINGS

(13)

입력 및 출력 버퍼

2. 입력 및 출력 버퍼(1)

입력함수를 통해 입력 받는 데이터는

- 프로그램에 의해 바로 읽혀지지 않고 먼저 입력버퍼에 저장 - Enter Key가 입력 시 입력버퍼의 내용이 프로그램에 전달

출력함수의 경우도 마찬가지로

- 모니터에 즉시 출력되는 것이 아니라

- 출력버퍼에 저장되었다가 모니터로 출력됨

(14)

라인버퍼(줄 단위) 입력 함수

2. 입력 및 출력 버퍼(2)

C 컴파일러에서 제공하는 함수는 라인버퍼 입력 방식

데이터 입력 시 데이터를 입력하고 [Enter]를 쳐야만 입력함수가 값을 읽어감

라인버퍼 입력 한 줄 전체를 입력할 때까지 기다림

[Enter]를 치면 입력버퍼의 값을 변수에 저장

getchar()

scanf()

gets()

라인버퍼 입력함수

값과 함께 [Enter] 입력 [Enter] : 입력버퍼에 존재

(15)

라인버퍼(줄 단위) 입력 함수 예(1)

2. 입력 및 출력 버퍼(3)

(16)

라인버퍼(줄 단위) 입력 함수 예(2)

2. 입력 및 출력 버퍼(4)

(17)

정리하기

1. 표준 입력 함수

- getchar() : 한 문자를 표준 입력 장치인 stdin(키보드)에서 입력 - gets() : 문자열을 표준 입력 장치인 stdin(키보드)에서 입력

- scanf() : 키보드에서 입력된 값을 읽어와 format 문자열로 지정된 코드에 맞게 변환하여 변수에 저장

2. 입력 및 출력 버퍼

- C 컴파일러에서 제공하는 함수는 라인버퍼 입력 방식

- 데이터 입력 시 데이터를 입력하고 [Enter]를 쳐야만 입력함수가 값을 읽어감

(18)

다음시간에는…

에 대해 학습해 보겠습니다.

참고문헌

2주차. 입출력 함수와 연산자

3강. 연산자

참조

관련 문서

결론적으로 본 증례와 같이 대동맥의 주요 혈관 기시부 주위 에 발생한 대동맥류는 맞춤형 스텐트-그라프트를 이용하여 혈 관 내 치료를

논문과 참고문헌 레코드를 비교하여 일치하면 매핑 에 성공한 것으로 판단하고 참고문헌 레코드의 매핑 필 드에 e-Gate DB의 논문 레코드 식별번호를 기록하여

의료사회복지의 전문성과 의료사회복지사” 에 대해

구절초에 발생한 병징과 분리균의 균학적 특징 및 병원성을 검정한 결과, 이 병을 Sclerotium rolfsii 에 의한 구절초 흰비단병으로

우리는 자신이 지니고 있는 외모와 체형에 어울리는 스타일을 알고 자신이 강점으로 삼아 야 할 매력을 알 수 있는 방법에 대해 결국

따라서 용담 호를 주요 서식지로 이용하는 수조류의 보호 및 관리를 위해 쓰레기 수거 작업을 수행할 때는 수변부 정리에 대해 세심한

학생들: 화학 결합에는 비금속 원자가 서로 전자를 내어 전자쌍을 만들고, 이 전자쌍을 두 원자가 공유함으로써 형성되는 공유 결합이 있어요.. 지난 시간까지는 공유 결합만 배웠는데, 이번 시간에는 화학 결합에 대해 좀 더 배워

오차율이 적용된 후에 Discordance test와 Dixon's test 에 의해 선별된 이상치는 동일하게 나타났으며, 각 방법 들은 전문가에 의한 선별