제 9장 입력과 출력 Hello!! C 언어 강성호 김학배 최우영.

Slides:



Advertisements
Similar presentations
Chapter 12. 배열. 배열  동일한 항목들이 동일한 크기로 연속적으로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는 자료 구조.
Advertisements

6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
C 프로그래밍 기초.
제12장 표준 입출력과 파일 입출력.
[ 단원 12 ] 파일처리 부산대학교 남 태 우.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express.
-Part3- 제3장 콘솔 입출력과 파일 입출력.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
Chapter 10– 표준 함수(1) Outline 10.1 스트림과 파일 10.2 입출력 표준 함수
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
조 병 규 Software Quality Lab. 한국교통대학교
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
3. printf()와 데이터 형식.
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express Slide 1 (of 23)
HW#1 Source 파일 제출 3.20(수)까지 제출 학번_이름_01.c
Part 14 파일 입출력 ©우균, 창병모 ©우균, 창병모.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
9장 파일 입출력.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
처음으로 배우는 C 프로그래밍 제5부 추가적인 화제들 제 11 장 파일 처리.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
파일 기술자 복사 파일 기술자 복사 : dup(2) 파일 기술자 복사 : dup2(3)
12장 파일처리와 매크로 파일 입출력 함수 문자 입출력 함수 라인 입출력 함수 불록 입출력 함수 매크로.
Chapter 4. 보조자료 - 파일 입출력 파일의 기본 개념과 특징을 이해한다. 파일 처리 과정을 이해한다.
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
11 표준 입출력과 파일 입출력 데이터를 읽고 쓰는 다양한 방법 익히기!.
6장. printf와 scanf 함수에 대한 고찰
TCP/IP Socket Programming…
14주차.
14장. 포인터와 함수에 대한 이해.
공학컴퓨터프로그래밍 Python 염익준 교수.
11장. 1차원 배열.
10장 C 표준 파일 입출력 子曰 學而時習(실습?)之 不亦悅乎.
9장 파일 입출력.
17강 파일처리함수(1) 강 의 내 용 파일 입출력의 개념 파일포인터를 이용한 입출력 파일 입출력 과정
18강 파일처리함수(2) 강 의 내 용 순차파일 만들기와 읽기 순차파일 입출력함수 랜덤파일 처리
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
2019년 2월 24일 오후 4시 59분 제2장 표준 입출력 함수
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
24장. 파일 입출력.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
01_ C++ 스타일의 입출력 02_ C 스타일의 입출력
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
8주차: Strings, Arrays and Pointers
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
파일 입출력.
Fucntion 요약.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
구조체(struct)와 공용체(union)
Chapter 12 파일 입출력.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
어서와 C언어는 처음이지 제16장.
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
어서와 C언어는 처음이지 제21장.
2019 1학기 응용프로그래밍 - 파일 처리 01 파일 열기 02 파일 저장과 내용 읽기 03 이진파일 처리 04 임의접근 파일 처리 05 파일 관련 함수들.
13. 포인터와 배열! 함께 이해하기.
개정판 누구나 즐기는 C언어 콘서트 제12장 파일 입출력 출처: pixabay.
⊙ 입출력 처리란? data를 입력장치로부터 program 내부로 읽어 들이거나
C Programming Seminar 데이터와 입출력 함수.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

제 9장 입력과 출력 Hello!! C 언어 강성호 김학배 최우영

순서 표준 입출력 함수 printf()와 scanf() getchar()와 putchar() gets()과 puts() 제 9장 입력과 출력 표준 입출력 함수 printf()와 scanf() getchar()와 putchar() gets()과 puts() 파일 입출력 함수 fopen()과 fclose() 서식 입출력 함수 fprintf()와 fscant() fgetc()와 fputs() fgets()와 gputs() 구역 입출력 함수 fread()와 fwrite() 랜덤 엑세스 함수 fseek()와 ftell() 파일조작에 관한 I/O 함수 요약

표준 입출력 함수 스트림(stream) 종류 파일(file) 제 9장 입력과 출력 스트림(stream) C 언어의 입출력 시스템에서 프로그래머와 사용되는 장치와의 추상화 개념 종류 텍스트 스트림(text stream) : 인쇄가 가능한 문 자들의 연속. 각 줄의 끝에 `/n'가 입력됨. 이진 스트림(binary stream) : 외부 장치에서의 바이트에 일대일 대응되는 바이트들의 연속. 아 무런 문자 번역이 발생하지 않음. 파일(file) 실제 입출력 장치를 논리적 개념으로 간주하여 파일이라 함. open 연산으로 스트림을 특정 파일과 연결. close 연산을 사용하여 특정 스트림과의 관계를 끊음. exit() 함수를 호출하면 모든 파일들을 자동적으로 종결시킴.

표준 입출력 함수 표준 입출력 장치 표준 입출력 함수 제 9장 입력과 출력 표준 입출력 장치 표준 입출력 함수 지시된 기억 장소에 데이터를 키보드로부터 직접 입력하거나 입력된 데이터를 모니터에 출력하는 역할을 담당하는 함수. 이와 같은 표준 입출력 함수들은 "stdio.h"라는 헤더 파일에 저장됨.

printf()와 scanf() printf() 함수 printf()의 사용 형식 제 9장 입력과 출력 printf() 함수 데이터를 원하는 서식에 맞추어 화면에 출력하는 함수. print formatted의 의미. printf()의 사용 형식 오른쪽에 있는 인수들을 서식 문자열 내의 변환 문자의 형태로 바꾸어 화면에 출력함. printf(서식 문자열, 인수들);

printf()와 scanf() 변환 문자 %d : int 형의 값을 십진수로 바꾸어줌 제 9장 입력과 출력 변환 문자 %d : int 형의 값을 십진수로 바꾸어줌 %ld : long 형의 값을 십진수로 바꾸어줌 %x : int 형의 값을 16진수로 바꾸어줌 %lx : long 형의 값을 16진수로 바꾸어줌 %o : int 형의 값을 8진수로 바꾸어줌 %lo : long 형의 값을 8진수로 바꾸어줌 %u : unsigned 형을 십진수로 바꾸어줌 %lu : long unsigned 형을 십진수로 바꾸어줌 %e : 부동 소수점수를 지수형으로 나타내줌 %f : 부동 소수점수를 고정소수점수로 나타내줌 %g : 부동 소수점수를 %e와 %f중 간단한 것으로 나타내줌 %p : 포인터형 값으로 나타내줌 %c : 바이트 값을 문자로 바꾸어줌 %s : 문자열로 바꾸어줌

printf()와 scanf() [예제 9-1] printf("%5d", a); [실 행 결 과] 1234567 제 9장 입력과 출력 [예제 9-1] printf("%5d", a); [실 행 결 과] 1234567

printf()와 scanf() [예제 9-2] #include <stdio.h> main() { 제 9장 입력과 출력 [예제 9-2] #include <stdio.h> main() { float a, b; a = 15.0; b = 3.0; printf("덧 셈 = %8.2f\n", a+b); printf("뺄 셈 = %8.2f\n", a-b); printf("곱 셈 = %8.2f\n", a*b); printf("나눗셈 = %8.2f\n", a/b); } [실행 결과] 덧 셈 = 18.00 뺄 셈 = 12.00 곱 셈 = 45.00 나눗셈 = 5.00

printf()와 scanf() scanf() 함수 scanf()의 사용 형식 제 9장 입력과 출력 scanf() 함수 키보드로부터 서식에 맞추어 다양한 형태의 데이터를 입력받는 함수. scanf()의 사용 형식 printf()와는 반대로 행 지정 입력을 수행함 서식 문자열의 위치에 일반적인 문자열이나 제어 문자는 기술할 수 없고 오직 변환 문자만 사용할 수 있음 일반 변수의 인수에는 참조 호출(call by reference) 방식으로 데이터를 전송하므로 변수의 주소를 나타내는 &를 사용하여 변수의 주소임을 나타내야 함. scanf(서식 문자열, 인수들); 예제 9-3, 예제 9-4 참조

printf()와 scanf() [예제 9-3] #include <stdio.h> main() { int a, b; 제 9장 입력과 출력 [예제 9-3] #include <stdio.h> main() { int a, b; float average; printf("input data = "); scanf("%d %d", &a, &b); average = (a+b)/2; printf("average of two numbers = %f\n",average); } [실 행 결 과] input data = 10, 20 average of two numbers = 15.000000

printf()와 scanf() [예제 9-4] #include <stdio.h> main() { 제 9장 입력과 출력 [예제 9-4] #include <stdio.h> main() { float x, y, average = 0.0; printf("input data(x, y) = "); scanf("%f %f", &x, &y); printf("sum of two numbers = %f\n", x+y); printf("average of two numbers = %f\n", (x+y)/2); } [실 행 결 과] input data(x, y) = 10.0 20.0 sum of two numbers = 30.000000 average of two numbers = 15.000000

getchar()와 putchar() getchar() 함수 putchar() 함수 형식 제 9장 입력과 출력 getchar() 함수 키보드로부터 한 문자를 읽어들여 실행중인 프로 그램에 전달. putchar() 함수 프로그램에서 한 문자를 받아 화면에 출력. 형식 char ch; ch = getchar(); putchar(ch);

getchar()와 putchar() [예제 9-5] #include <stdio.h> main() { 제 9장 입력과 출력 [예제 9-5] #include <stdio.h> main() { char str; str = getchar(); putchar(str); putchar('\n'); putchar('A'); } [실 행 결 과] d A

getchar()와 putchar() [예제 9-6] #include <stdio.h> main() { 제 9장 입력과 출력 [예제 9-6] #include <stdio.h> main() { char str; str = getchar(); while(str != EOF) { putchar(str); str=getcjar(); } [실 행 결 과] example ABCD EFG 1234567 ^Z

gets()과 puts() gets() 함수 puts() 함수 형식 키보드에서 지시한 문자열을 지시된 버퍼에 저장 제 9장 입력과 출력 gets() 함수 키보드에서 지시한 문자열을 지시된 버퍼에 저장 scanf() 함수와의 차이점 scanf() 함수는 공백 혹은 <Enter>에 의해서 입력의 끝을 저장하나, gets()은 입력의 끝으로 <Entert>만을 받아들임 버퍼의 크기 : 예상되는 최대 문자수 + 1 입력의 끝에 NULL이 부과됨. puts() 함수 버퍼의 문자열을 NULL이 나올 때까지 화면에 출력 형식 char name[10]; gets(name); puts(name);

gets()과 puts() [예제 9-7] #include <stdio.h> main() { 제 9장 입력과 출력 [예제 9-7] #include <stdio.h> main() { char name[15], irum[15]; gets(name); scanf("%s", irum); printf("name = %s\n", name); printf("irum = %s\n", irum); } [실 행 결 과] name = Hong Gil Dong irum = Hong

gets()과 puts() [예제 9-8] #include <stdio.h> main() { char ch[15]; 제 9장 입력과 출력 [예제 9-8] #include <stdio.h> main() { char ch[15]; gets(ch); printf("%s", ch); puts(ch); } [실 행 결 과] Hong Gil DongHong Gil Dong

입출력 함수 제 9장 입력과 출력 표준 입출력 함수 프로그램 실행중 주기억 장치 내로 데이터를 입력하거나 저장된 데이터를 출력할 경우 입출력장치로서 주로 키보드와 화면을 이용한 방법. 컴퓨터를 끄거나 실행 파일에서 빠져 나오면 주기억 장치에서는 실행된 결과가 지워져 버림. 파일 입출력 함수 보조 기억 장치인 디스크에서 입력 자료를 읽어와 출력 결과를 파일 단위로 디스크에 저장하는 기능을 지닌 함수. 입력 자료나 실행 결과의 보존은 반영구적. 데이터가 미리 저장되어 있는 자료 파일 : "data.in” 출력으로 저장할 정보 파일 : "data.out” 자료의 처리를 위한 프로그램 : "main.c” 파일 입출력을 위해 3개의 파일이 필요.

파일 입출력 함수 제 9장 입력과 출력 종류

fopen()과 fclose() fopen() 함수 형식 용도 제 9장 입력과 출력 fopen() 함수 용도 filename으로 지정된 파일을 mode로 지정된 형태 로 열게 됨. 형식 FILE *fopen(filename, mode) const char *filename; const char *mode; / * 인수 filename : 개방하고자 하는 파일 이름 */ /* 인수 mode : 파일에 대한 처리 종류 지정 모드 */

fopen()과 fclose() 제 9장 입력과 출력 파일 개방 모드

fopen()과 fclose() [예제 9-9] FILE *in, *out; 제 9장 입력과 출력 [예제 9-9] FILE *in, *out; in = fopen("example.in", "r"); out = fopen("example.out", "w");

fopen()과 fclose() fclose() 함수 형식 exit() 함수 제 9장 입력과 출력 fclose() 함수 용도 : 사용한 파일을 닫고자 할 때, 지정된 파일 포인 터와 연결된 외부 파일을 단절하기 위해 사용. 형식 int fclose(fptr); FILE *fptr; /* 인수 fptr : 파일 포인터 */ exit() 함수 파일을 닫는 기능 수행. 현재 열려 있는 모든 파 일을 닫음.

fopen()과 fclose() [예제 9-10] #include <stdio.h> main() { 제 9장 입력과 출력 [예제 9-10] #include <stdio.h> main() { FILE *in, *out; /* 파일 포인터 변수 선언 */ /* 사용할 파일의 개방 */ in = fopen("example.in", "r"); out = fopen("example.out", "w"); … /* 사용했던 파일의 폐쇄 */ fclose(in); fclose(out); }

서식 입출력 함수 fprintf()와 fscant() 제 9장 입력과 출력 fprintf() 함수 용도 : 디스크 파일을 대상으로 printf() 함수와 같은 기능을 수행 형식 int fprintf(fptr, format, argument list); FILE *fptr; const char *format; /* 인수 fptr : 파일 포인터 */ /* 인수 format : 서식 문자열 */ printf() 함수와의 관계 fprintf(stdout, format, argument list); printf(format, argument list);

서식 입출력 함수 fprintf()와 fscant() 제 9장 입력과 출력 fscanf() 함수 용도 : 디스크 파일을 대상으로 scanf() 함수와 같은 기능을 수행. 형식 int fscanf(fptr, format, argument list); FILE *fptr; const char *format; /* 인수 fptr : 파일 포인터 */ /* 인수 format : 서식 문자열 */ scanf() 함수와의 관계 fscanf(stdin, format, argument list); scanf(format, argument list);

서식 입출력 함수 fprintf()와 fscant() 제 9장 입력과 출력 [예제 9-11] #include <stdio.h> #include <stdlib.h> main() { int kor, eng, mat, total; float average; FILE *in, *out; in = fopen("example.in", "r"); out = fopen("example.out", "w"); if( in == NULL){ printf("File not found!!!"); exit(1); } 계속

서식 입출력 함수 fprintf()와 fscant() 제 9장 입력과 출력 [예제 9-11] 계속 fprintf(out, " *********** 성 적 표 *********** \n"); fprintf(out, " 국 어 영 어 수 학 총 점 평균 \n\n"); while( fscanf(in, "%d %d %d", &kor, &eng, &mat) != EOF ){ total = kor + eng + mat; average = total/3; fprintf(out, "%6d %8d %9d %8.2f\n", kor, eng,mat, total, average); } fclose(in); fclose(out); 계속

서식 입출력 함수 fprintf()와 fscant() 제 9장 입력과 출력 [예제 9-11] 계속 [실 행 결 과] *********** 성 적 표 *********** 국 어 영 어 수 학 총 점 평 균 80 80 80 240 80.00 90 95 85 270 90.00 70 75 65 210 70.00 90 75 100 265 88.33

fgetc()와 fputc() fgetc() 함수 형식 용도 : 파일에서 한 글자를 입력하는 함수 제 9장 입력과 출력 fgetc() 함수 용도 : 파일에서 한 글자를 입력하는 함수 지정한 파일에서 한 문자를 읽어서 int형으로 되돌리고 파일 포인터를 하나 증가시킴. 형식 int fgetc(fptr); FILE *fptr; /* 인수 fptr : 파일 포인터 */

fgetc()와 fputc() fputc() 함수 형식 예제 9-12 용도 : 파일에서 한 글자를 출력하는 함수 제 9장 입력과 출력 fputc() 함수 용도 : 파일에서 한 글자를 출력하는 함수 형식 int fputc(ch, fptr); FILE *fptr; char ch; /* 인수 fptr : 파일 포인터 */ /* 인수 ch : 문자 변수 */ 예제 9-12 fgetc()와 fputc() 함수를 이용하여 임의의 파일 내용을 다른 파일로 출력하는 파일 복사 프로그램.

fgetc()와 fputc() [예제 9-12] #include <stdio.h> 제 9장 입력과 출력 [예제 9-12] #include <stdio.h> #include <stdlib.h> main(){ char ch; FILE *in, *out; in = fopen("example.c", "r"); if(in== NULL) { printf("File not found!!!\n") exit(1) } out = fopen("copy.c", "w"); while((ch = fgetc(in)) != EOF) fputc(ch, out); [실 행 결 과] fclose(in); 위 프로그램을 실행시키면 example.c" fclose(out); 파일을 복사하여 copy.c" 파일이 같은 } 디렉토리에 생성된다.

fgets()와 fputs() fgets() 함수 형식 용도 : 스트림으로부터 문자열을 읽어들이는 함수 제 9장 입력과 출력 fgets() 함수 용도 : 스트림으로부터 문자열을 읽어들이는 함수 파일로부터 한 줄을 읽어 s에 저장 개행문자(‘\n’)나 EOF을 만날 때까지 파일로부터 읽음 읽어온 데이터의 끝에 NULL 문자를 붙여줌. 형식 char *fgets(s, n, fptr); char *s; int n; FILE *fptr; /* 인수 s : 입력 문자열을 저장하는 버퍼 */ /* 인수 n : 입력 최대 문자수 */ /* 인수 fptr : 파일 포인터 */

fgets()와 fputs() fputs() 함수 형식 용도 : 스트림으로부터 지정된 파일에 버퍼로부터 문자열을 출력하는 함수 제 9장 입력과 출력 fputs() 함수 용도 : 스트림으로부터 지정된 파일에 버퍼로부터 문자열을 출력하는 함수 스트림으로 지정된 파일에 s가 가리키는 문자열 자료를 출력. 형식 int fputs(s, fptr); char *s; FILE *fptr; /* 인수 s : 출력할 문자열 */ /* 인수 fptr : 파일 포인터 */

fgets()와 fputs() [예제 9-13] /* filename : input.c */ 제 9장 입력과 출력 [예제 9-13] /* filename : input.c */ The limits in your life are the size of your ideas and your degree of determination. #include <stdio.h> main(){ char buf[256]; FILE *in, *out; int cnt = 0; in = fopen("input.c", "r"); out = fopen("output.c", "w"); while(fgets(buf, 256, in) != NULL) { fputs(buf, out); ++cnt; } 계속

fgets()와 fputs() [예제 9-13] 계속 제 9장 입력과 출력 [예제 9-13] 계속 printf("This file includes %d lines.\n", cnt); fclose(in); fclose(out); } [실 행 결 과] 이 프로그램을 실행시키면 다음 문장이 화면에 나타난다. This file includes 2 lines. 또한, "output.c" 파일을 보면 input.c" 파일과 동일한 내용을 포함하고 있음을 알 수 있다.

구역 입출력 함수 fread()와 fwrite() 제 9장 입력과 출력 fread() 함수 용도 : 이진 스트림 전용 함수로서 스트림의 파일 포인터에서 각각 n 바이트 크기를 갖는 cnt 개의 데이터 항목을 포인터 buf가 가리키는 구역으로 읽어들임 형식 int fread(buf, n, cnt, fptr); void *buf; int n; int cnt; FILE *fptr; /* 인수 buf : 반환 포인터 */ /* 인수 n : 자료 구역 크기 */ /* 인수 cnt : 반환 구역수 */ /* 인수 fptr : 파일 포인터 */

구역 입출력 함수 fread()와 fwrite() 제 9장 입력과 출력 fwrite() 함수 용도 : 이진 스트림 전용 함수로서 포인터가 가리키는 구역을 스트림의 파일 포인터에 출력 형식 int fwrite(buf, n, cnt, fptr); char *buf; int n; int cnt; FILE *fptr; /* 인수 buf : 기록될 정보에 대한 포인터 */ /* 인수 n : 자료 구역 크기 */ /* 인수 cnt : 기록될 구역수 */ /* 인수 fptr : 파일 포인터 */

구역 입출력 함수 fread()와 fwrite() 제 9장 입력과 출력 [예제 9-14] #include <stdio.h> main() { FILE *fp; float f = 10.05; if((fp = fopen("test.c", "wb")) == NULL) printf("cannot open file!\n"); return; } fwrite(&f, sizeof(float), 1, fp); fclose(fp);

랜덤 엑세스 함수 fseek()와 ftell() 제 9장 입력과 출력 fseek() 함수의 형식 int fseek(fptr, offset, whence); FILE *fptr; long int offset; int whence; /* 인수 fptr : 파일 포인터 */ /* 인수 offset : 원하는 위치로 이동하기 위한 바이트수 */ /* 인수 whence : offset 시작점 */

랜덤 엑세스 함수 fseek()와 ftell() 제 9장 입력과 출력 Fseek() 함수 용도 : 파일 포인터의 위치를 사용자가 원하는 지점으로 이동하는 함수로서 파일 내의 원하는 지점에 포인터를 놓은 후, 그 지점에 수록된 내용을 읽거나 처리할 수 있기 위한 함수 offset과 whence offset 파일 포인터가 가리키는 위치로부터 원하는 지점으로 이동하기 위한 바이트수 반드시 long형으로 기술 whence 현재 파일 포인터가 가리키고 있는 시작점 0 : 파일의 맨 처음 위치(SEEK_SET) 1 : 파일 내의 현재 위치(SEEK_CUR) 2 : 파일의 맨 끝 위치(SEEK_END)

랜덤 엑세스 함수 fseek()와 ftell() 제 9장 입력과 출력 ftell() 함수 형식 long int ftell(fptr); FILE *fptr; /* 인수 fptr : 파일 포인터 */ 용도 파일 포인터의 현재 위치를 나타내는 함수로서 파일의 시작 위치로부터 현재 파일 포인터가 있는 곳까지의 바이트 수를 반환. 예제 9-15 무작위로 번호, 이름, 점수를 입력받아 랜덤 파일 을 만드는 과정을 나타낸 프로그램

랜덤 엑세스 함수 fseek()와 ftell() 제 9장 입력과 출력 [예제 9-15] #include <stdio.h> main() { long int num, score, size = 16L; static char name[11], ch; FILE *out; out = fopen("random.dat", "w"); while(1){ printf("\n 번호, 이름(최대 10자리), 점수\n"); scanf("%1d %10s %3d", &num, &name, &score); fseek(out, (num-1)*size, 0); fprintf(out, "%3d %10s %3d", num, name, score); printf("계속 입력 ? (Y/N)"); ch = getchar(); 계속

랜덤 엑세스 함수 fseek()와 ftell() 제 9장 입력과 출력 [예제 9-15] 계속 if((ch == 'Y' || ch == 'y') continue; else break; } fclose(out); [입력 데이터] 4 홍길동 80 2 이몽룡 95 1 성춘향 72 3 임꺽정 98 [실 행 결 과] random.dat 에 다음과 같은 내용이 써진다. 1 성춘향 72 2 이몽룡 95 3 임꺽정 98 4 홍길동 80