Formatted Input/Output

Slides:



Advertisements
Similar presentations
3. 자료형. 담당교수 : 이 성 우 C++ 프로그래밍 상수와 변수 (3) 1. 변수 (variable)  프로그램 수행 도중에 자료  변수를 위해 은 변하지 않음  선언 시에 반드시 그. ※ 저장 정보의 구성 ① 정보의 종류 ② 저장 값 ③ 저장 위치 int Num.
Advertisements

03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
기본 자료형 순천향대학교 정보기술공학부 이 상 정. 자료형의 선언 컴퓨터프로그래밍 1 순천향대학교 정보기술공학부 이 상 정 3 자료형 선언 기본 자료형문자형 char 정수형 int 실수형 float double 형없음 void.
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
프로그래밍1 및 실습 (C언어) - 3장 기본자료형 (3.6부터 끝까지) -
데이터의 표현과 연산 (1) (Chapter 3)
제 3 장 변수와 자료형.
제12장 표준 입출력과 파일 입출력.
C++ Tutorial 1 서강대학교 데이터베이스 연구실.
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
제 1장 C 언어의 소개.
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
4부 클래스 라이브러리 “4부에서는 자바 언어의 API인 클래스 라이브러리에 관해 설명합니다
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
4장: 자료형과 수식.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
변수와 자료형.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
표준 출력 함수 printf 출력 데이터 서식화(formatting) 표준 입력 함수 scanf 입력 데이터 서식화
변수와 자료형.
내용 프로그래밍 언어(programming language) C 언어란?? C 언어 역사 C 언어 특징 C 프로그램의 구조
제 2 장 변수와 상수.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
4주차: Data Types and Functions
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
adopted from KNK C Programming : A Modern Approach
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
Chapter 2 Lexical Elements, Operators, and the C System
제2장 데이터형과 표준 입출력문 문봉근.
2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
adopted from KNK C Programming : A Modern Approach
타입, 연산자 Chapter 5, 6 Kum Deuk Kyu , Ph. D. Spring 2015
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 05. 상수와 기본 자료형.
Chapter 04 자료 유형.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
Chapter 11. 배열과 포인터.
Chapter 04. 데이터의 표현과 연산(Ⅱ).
Chapter 05. 입출력 함수.
제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
포인터와 배열 조 병 규 한 국 교 통 대 학 교 SQ Lab..
C언어 프로그래밍의 이해 Ch03. 기본 자료형, 변수와 상수.
3주차: Control Flow and Others
Introduction to Computer System 컴퓨터의 이해 3: 데이터 표현
박성진 컴퓨터 프로그래밍 기초 [03] 변수와 자료형 박성진
Spring, 2019 School of CSE Pusan National University
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
printf("Global Korea\n");
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
Presentation transcript:

Formatted Input/Output adopted from KNK C Programming : A Modern Approach

The printf Function (1/3) 출력될 문자열은 일반 글자들과 %로 시작되는 형식지정자가 포함될 수 있음 형식 지정자는 출력될 값이 표현될 위치를 나타냄 %d 는 int 형 값에 쓰임 %f 는 float 형 값에 쓰임 printf(format_string, expr1, expr2, …);

The printf Function (2/3) 일반 문자는 기록된 데로 표현되고 형식지정자는 뒤 따라오는 변수/값을 표혀함 Example: int i, j; float x, y;   i = 10; j = 20; x = 43.2892f; y = 5527.0f; printf("i = %d, j = %d, x = %f, y = %f\n", i, j, x, y); Result: i = 10, j = 20, x = 43.289200, y = 5527.000000

The printf Function (3/3) 컴파일러는 몇개의 형식지정자가 사용되었는지 검사하지 않아도 됨. 하지만, 형식지정자의 개수와 변수/값의 수는 같아야 함 컴파일러는 형식지정자가 제대로 쓰였는지 검사하지 않아도 됨 형식이 맞지 않으면 의미 없는 결과를 출력하게 됨: printf("%d %d\n", i); /*** WRONG ***/ printf("%d\n", i, j); /*** WRONG ***/ int i; float x; printf("%f %d\n", i, x); /*** WRONG ***/

Conversion Specifications형식 지정자 (1/2) conversion specifier 형식지정자 %d – Integer 정수 %e - Exponential format 지수 %f - Fixed decimal 소수점 %g - Either exponential format or fixed decimal format 지수형이나 소수점 형 %m.pX minimum field width 필드의 길이 Precision 정밀도 optional optional 12345.6789 %5.3f %8d %-8d 12345.678 12345

Conversion Specifications (1/2) Format specifier Description Supported data types %c Character char unsigned char %d Signed Integer short unsigned short int long %e or %E Scientific notation of float values float double %f Floating point float %g or %G Similar as %e or %E %hi Signed Integer(Short) short %hu Unsigned Integer(Short) unsigned short %i %l or %ld or %li long %lf double %Lf long double %lu Unsigned integer unsigned int unsigned long Format specifier Description Supported data types %lli, %lld Signed Integer long long %llu Unsigned Integer unsigned long long %o Octal representation of Integer. short unsigned short int unsigned int long %p Address of pointer to void void * void * %s String char * %u unsigned int unsigned long %x or %X Hexadecimal representation of Unsigned Integer %n Prints nothing %% Prints % character

Escape Sequences 특수 문자 (1/2) \n 와 같은 서식을 escape sequence 특수문자라 함. 특수 문자는 제어용 출력이 안되는 문자와 특별한 의미를 갖는 “와 같은 문자들로 구성되어 있음 특수 문자의 일부: Alert (bell, 종소리) \a Backspace 백스페이스 \b New line 줄 바꿈 \n Horizontal tab 탭 문자 \t

Escape Sequences (2/2) 문자열에는 특수문자가 몇이든 포함될 수 있음: 주로 사용되는 특수문자는 \" 로서 " 문자를 출력함: \ 문자를 쓰려면, \ 문자를 두번 연속으로 쓰면 됨: printf("Item\tUnit\tPurchase\n\tPrice\tDate\n"); Item Unit Purchase Price Date printf("\"Hello!\""); /* prints "Hello!" */ printf("\\"); /* prints one \ character */

The scanf Function scanf(format_string, &var1, &var2, …); scanf 의 형식 변환은 printf와 동일함. 많은 경우 scanf 의 문자 형식은 형식지정자만 포함하고 있음: 예제 입력: scanf 는 1, –20, 0.3,–4000.0 을 i, j, x, y에 저장함 scanf(format_string, &var1, &var2, …); int i, j; float x, y; scanf("%d%d%f%f", &i, &j, &x, &y); 1 -20 .3 -4.0e3

How scanf Works (1/4) scanf 는 입력된 글자들을 형식지정자에 매치를 시키는 일을 함

How scanf Works (2/4) 1 -20 .3 ••1¤-20•••.3¤•••-4.0e3¤ -4.0e3 숫자를 찾는 동안 공백 문자는 무시함 스페이스, 탭, 줄바꿈 등 scanf 호출로 4개의 수를 읽는 예 scanf("%d%d%f%f", &i, &j, &x, &y); 이 경우 입력이 여러 줄에 걸쳐 입력될 수 있음 scanf 는 마지막 줄 바꿈 기호를 읽지는 않고 “엿보기”만 한다 1 -20 .3 -4.0e3 ••1¤-20•••.3¤•••-4.0e3¤ ssrsrrrsssrrssssrrrrrr (s = 건너뜀; r = 읽기)

How scanf Works (3/4) 정수를 읽으려고 하면 scanf 는 먼저 숫자와 더하기 또는 빼기 기호를 찾음. 그리고 숫자가 아닌 것이 나올 때까지 읽음 소수점을 읽으려고 하면 다음의 순서대로 정보를 찾음 덧셈, 뺄셈 기호 (optional), 그리고 숫자 (소수점을 포함하는), 그리고 지수 (optional). 지수는 문자 e (또는 E)를 쓰고, 양수음수 부호와 하나 또는 그 이상의 자리수로 구성. scanf 에서 %e, %f, %g 는 서로 교환이 됨. 만약 scanf 가 이번 읽기 시도에서 포함이 불가능한 문자를 만나게 되면 그 문자의 읽기를 취소함

How scanf Works (4/4) 1-20.3-4.0e3¤ scanf("%d%d%f%f", &i, &j, &x, &y); 예제 입력: 1-20.3-4.0e3¤ scanf 의 호출은 앞의 예에서와 같음: scanf("%d%d%f%f", &i, &j, &x, &y); 새로운 입력을 scanf 가 어떻게 처리하는 지 보자: %d : 1을 i에 저장하고 – 문자는 되돌려 놓음 %d : –20 을 j에 저장하고 . 문자는 되돌려 놓음 %f : 0.3 을 x 에 저장하고 - 문자는 되돌려 놓음 %f :–4.0 × 103 을 y 에 저장하고 줄바꿈 문자는 되돌려 놓음

형식 문자열의 일반 문자 하나 또는 그 이상의 공백 문자를 형식 문자열에서 만나면 scanf 는 공백문자가 아닌 문자를 만날 때까지 공백 문자를 계속 읽음 공백문자가 아닌 문자를 만나면 scanf 입력받아야 하는 형과 같은지 비교함 같으면, scanf 다음 번 처리할 형식으로 이동함 다르면, scanf 다른 문자를 복원하고 종료함 Examples: 형식 문자열이 "%d/%d" 이고 입력이 •5/•96 이면, scanf 성공. 입력이 •5•/•96 이면, scanf 실패, / 문자가 형식문자열에 지정한 값과 다르기 때문 공백을 허용하려면 "%d /%d" 이렇게 써야 함.

printf 와 scanf 주의점 (1/2) scanf 과 printf 의 호출이 유사해 보이지만, 매우 다른 함수임 scanf 는 먼저 입력으로 정수를 기대하며, 그 값을 i에 저장. scanf 은 그리고 쉼표가 입력되기를 기대함 입력이 쉼표가 아니라 공백이면 scanf 는 j를 위한 값을 읽지 않고 종료함. printf("%d %d\n", &i, &j); /*** WRONG ***/ scanf("%d, %d", &i, &j);

printf 와 scanf 주의점(2/2) scanf 의 형식 문자열의 끝에 줄바꿈 기호를 넣는 것은 좋은 생각이 아님 "%d\n" 이라고 쓰면, scanf 는 공백 문자를 무시하고 정수를 읽은 뒤 다시 공백문자가 아닌 글자가 들어오기를 기다리게 됨 이런 경우 프로그램이 멈춘 것처럼 보이게 됨