본 강의에 들어가기 전

Similar documents
Microsoft PowerPoint - chap11.ppt [호환 모드]

ABC 11장

슬라이드 1

ABC 11장

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

歯9장.PDF

Microsoft PowerPoint - 제11강 파일 처리

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

chap7.key

Microsoft PowerPoint - chap06-1Array.ppt

PowerPoint Template

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - chap03-변수와데이터형.pptx

PowerPoint 프레젠테이션

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

금오공대 컴퓨터공학전공 강의자료

KNK_C02_form_IO_kor

untitled

Microsoft PowerPoint - chap06-2pointer.ppt

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

C 프로그램의 기본

OCW_C언어 기초

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint - ch01.ppt

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

슬라이드 1

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Microsoft PowerPoint - Lesson13.pptx

Microsoft PowerPoint - ch07 - 포인터 pm0415

컴파일러

untitled

Microsoft PowerPoint - chap11-1.ppt [호환 모드]

PowerPoint Presentation

OCW_C언어 기초

K&R2 Reference Manual 번역본

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

강의 개요

Microsoft PowerPoint - chap04-연산자.pptx

13 주차문자열의표현과입출력

슬라이드 1

Microsoft PowerPoint 웹 연동 기술.pptx

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - chap10-함수의활용.pptx

11장 포인터

PowerPoint Presentation

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft PowerPoint - additional01.ppt [호환 모드]

11장 포인터

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - Chap14_FileAccess.pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - Chapter_04.pptx

설계란 무엇인가?

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

chap 5: Trees


슬라이드 1

Microsoft PowerPoint - chap11-포인터의활용.pptx

PowerPoint 프레젠테이션

제12장 파일 입출력

본 강의에 들어가기 전

슬라이드 1

C 언어 프로그래밊 과제 풀이

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

중간고사

11장 포인터

Microsoft PowerPoint APUE(Intro).ppt

<4D F736F F F696E74202D20C1A632B0AD20BAAFBCF6BFCD20C0DAB7E12C20C0FCC3B3B8AEBFCD20C0D4C3E2B7C2>

Microsoft PowerPoint - 제11장 포인터(강의)

윤성우의 열혈 TCP/IP 소켓 프로그래밍

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

제1장 Unix란 무엇인가?

Microsoft PowerPoint - c2.ppt

제1장 Unix란 무엇인가?

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \


The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - 09_(C_Programming)_(Korean)_File_Processing

ABC 2장

ch15

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

untitled

ABC 3장

Microsoft PowerPoint - KNK_C01_intro_kor

KNK_C01_intro_kor

untitled

Microsoft PowerPoint - chap4 [호환 모드]

OCW_C언어 기초

슬라이드 1

Transcription:

C 기초특강 표준입출력

printf() (1) 특징 임의의개수의인자출력 간단한변환명세나형식을사용한출력제어 형식 printf(control_string, other_argument) 예 printf("she sells %d %s for $%f", 99, "sea shells", 3.77); control_string: "she sells %d %s for $%f" other_arguments: 99, "sea shells", 3.77 변환명세는 % 로시작하여변환문자로끝남 2

printf() (2) printf() 변환문자 변환문자 c d,i u o x, X e E f g G s p n % 문자 10 진정수 대응되는인자의출력형태 부호없는 10 진정수부호없는 8 진정수부호없는 16 진정수부동소수점수 ; 예 : 7.123000e+00 부동소수점수 ; 예 : 7.123000E+00 부동소수점수 ; 예 : 7.123000 e 형식과 f 형식중짧은쪽 E 형식과 f 형식중짧은쪽문자열대응되는인자가 void 포인터임 ; 그값이 16 진수형태로출력됨대응되는인자는정수형포인터로서그값은현재까지출력된문자의개수임 ; 인자는변환되지않음 %% 의형식으로 % 를출력스트림에씀 ; 대응되는인자는없음. 3

예제 printf() (3) printf("she sells %d %s for $%f", 99, "sea shells", 3.77); 변환형식대응되는인자 %d %s %f 99 "sea shells" 3.77 4

printf() (4) % 와변환문자사이에올수있는것들 플래그문자들 빼기기호 좌측정렬 ( 생략하는경우기본은우측정렬 ) 더하기기호 공백 # 기호 0 음이아닌수에 + 기호를붙임 signed 변환에서음이아닌수앞에공백을붙임 변환문자 o 와함께쓰면 8 진수앞에 0 을붙이고, x 나 X 변환에서는 16 진수앞에 0x 또는 0X 를붙임 G 나 g 변환에서는뒤에 0 을붙이고, e, E, f, g, G 변환에서는정밀도가 0 이라도소수점출력 공백대신 0 으로채우라는의미 5

printf() (5) % 와변환문자사이에올수있는것들 ( 계속 ) 필드폭 양의정수로남는경우공백또는 0이채워짐. 부족한경우는필요한만큼늘어남 정밀도 점과음이아닌정수로구성되며, 출력될최소자릿수를지정 s 변환에서는출력될문자의최대개수지정 h 또는 l h는 short, l은 long 변환자 l 다음에 n이오면 long int나 unsigned long int 형 L 실수형변환에서 long double로변환 6

printf() (6) 선언과초기화 char c = 'A', s[] = "Blue moon!"; 변환형식대응되는인자필드내에서출력형태비고 %c c "A" 필드폭 1 ( 디폴트 ) %2c c " A" 필드폭 2, 우측정렬 %-3c c "A " 필드폭 3, 좌측정렬 %s s "Blue moon!" 필드폭 10 ( 디폴트 ) %3s s "Blue moon!" 공간이더필요함 %.6s s "Blue m" 정밀도 6 %-11.8s s "Blue moo " 정밀도 8, 좌측정렬 7

printf() (7) 선언과초기화 int i = 123; double x = 0.123456789; 변환형식 대응되는인자 필드내에서출력형태 비고 %d i "123" 필드폭 3 ( 디폴트 ) %05d i "00123" 영으로채움 %7o i " 173" 우측정렬, 8 진수 %-9x i "7b " 좌측정렬, 16 진수 %-#9x i "0x7b " 좌측정렬, 16 진수 %10.5f x " 0.12346" 필드폭 10, 정밀도 5 %-12.5e x "1.23457-01 " 좌측정렬, e- 형식 8

형식 scanf() (1) scanf(control_string, other_argument) 예 char a, b, c, s[100]; int n; double x; scanf("%c%c%c%d%s%lf", &a,&b,&c,&n,s,&x); control_string: "%c%c%c%d%s%lf" other_arguments: &a, &b, &n, s, &x 9

scanf() (2) scanf( ) 변환문자 변환문자입력스트림에서대응되는문자대응인자의포인터형 c d, i u o x, X e, E, f, g, G s p n, %, [...] 공백을포함한모든문자 10 진정수 ( 부호는옵션 ) 10 진정수 ( 부호는옵션 ) 8 진수 ( 부호는옵션 ) 16 진수 ( 부호는옵션 ) 실수 ( 부호는옵션 ) 공백없는문자열 printf() 함수의 %p 에의해출력되는것으로 일반적으로부호없는 16 진정수임 다음표참조 char integer unsigned integer unsigned integer unsigned integer floating type char void * 10

scanf() (3) scanf( ) 변환문자 변환문자 n 설명 입력스트림의문자와짝을이루지않는다. 대응되는인자는 정수형포인터로서, 지금까지읽어들인문자의개수를저장한다. % 입력스트림에서하나의 % 와짝을이룬다. 대응되는인자는없다. [...] 각괄호 [ ] 안에있는문자들을스캔집합이라한다. 이것은무엇이짝을이루는가를결정한다. 대응되는인자는문자배열의기본주소에대한포인터이고, 이배열은끝에자동적으로추가되는널문자를포함하여대응되는모든문자들을포함할만큼큰크기를가져야한다. 11

scanf() (4) 제어문자열은다음과같은것을포함할수있음 여백 입력스트림에있을수있는공백과각각대응 % 이외의공백문자가아닌일반문자 입력스트림의문자와반드시대응 % 로시작해서변환문자로끝나는변환명세 h l L % 와변환문자사이에 *(wildcard 문자 ) 이올수가있고, 그뒤에는최대폭을지정하는정수가올수있음. 그뒤에변환문자를수정하는 h, l, L 등이올수있음 d, i, o, u, x, X 변환문자앞에올수있으며, short int 나 unsigned short int 로저장됨을나타냄 d, i, o, u, x, X 변환문자또는 e, E, f, g, G 변환문자앞에올수있음. 정수형의경우 long int 나 unsigned long int 로저장됨을, 부동소숫점형의경우 double 로저장됨을나타냄 e, E, f, g, G 변환문자앞에올수있으며, long double 로저장됨을나타냄 12

scanf() (5) 예제 int i; char c; char string[15]; scanf("%d, %*s %% %c %5s %s", &i, &c, string, &string[5]); 입력스트림 45, ignore_this % C read_in_this** 결과 i : 45 c : C string[0-5] : "read_" string[5-14] : "in_this**" scanf() 는 4 를리턴 13

fprintf()/fscanf() 각각 printf() 와 scanf() 함수의파일버전 함수원형 int fprintf(file *fp, const char *format,...); int fscanf(file *fp, const char *format,...); fprintf(stdout,...); 와 printf(...); 는같은의미 fscanf(stdin,...); 은 scanf(...); 와같은의미 14

sprintf()/sscanf() 각각 printf() 와 scanf() 함수의문자열버전 함수원형 int sprintf(char *s, const char *format,...); int sscanf(const char *s, const char *format,...); 15

fopen()/fclose() 파일열기와닫기의전형적인예제코드 #include <stdio.h> int main(void) { FILE *ifp, *ofp; ifp = fopen("my_file", "r"); /* open for reading */ ofp = fopen("outfile", "w"); /* open for writing */... } fclose(ifp); fclose(ofp); 16

fopen() fopen(filename, mode) 형태의함수호출은 filename 파일을 mode 에지정된모드로열고, 파일포인터를리턴함 모드 모드 "r" "w" "a" "rb" "wb" "ab" 의미읽기위해문서파일열기쓰기위해문서파일열기첨부하기위해문서파일열기읽기위해이진파일열기쓰기위해이진파일열기첨부하기위해이진파일열기 UNIX(LINUX) 의경우이진파일과텍스트파일구별이불필요 모드뒤의 + 는파일을읽기와쓰기로모두연다는것을의미함 17

파일의임의의위치접근 ftell(file_ptr) 파일위치지시자의현재값을리턴 fseek(file_ptr, offset, place); 이것은파일위치지시자를 place 부터 offset 바이트떨어진곳을나타내는값으로설정함 place 의값은 0, 1, 2 중하나 각각파일의처음, 현재위치, 파일의끝을나타냄 18

파일의임의의위치접근 파일을역으로출력하는프로그램 #include <stdio.h> #define MAXSTRING 100 int main(void) { char fname[maxstring]; int c; FILE *ifp; fprintf(stderr, "\ninput a filename: "); scanf("%s", fname); } ifp = fopen(fname, "rb"); /* binary mode for ms-dos */ fseek(ifp, 0, SEEK_END); /* move to end of the file */ fseek(ifp, -1, SEEK_CUR); /* back up one character */ while (ftell(ifp) > 0) { c = getc(ifp); /* move ahead one character */ putchar(c); fseek(ifp, -2, SEEK_CUR); /* back up two characters */ } return 0; 19

과제 앞서수행한성적처리프로그램의결과를표형식으로정렬하여화면에출력하시오. 앞서수행한성적처리프로그램의결과를표형식으로정렬하여파일에저장하시오. 20