Presentation is loading. Please wait.

Presentation is loading. Please wait.

アルゴリズムとデータ構造 補足資料6-2 「サンプルプログラムcat2.c」

Similar presentations


Presentation on theme: "アルゴリズムとデータ構造 補足資料6-2 「サンプルプログラムcat2.c」"— Presentation transcript:

1 アルゴリズムとデータ構造 補足資料6-2 「サンプルプログラムcat2.c」
横浜国立大学 理工学部 数物・電子情報系学科 富井尚志

2 /. アルゴリズムとデータ構造 サンプルプログラム cat2
/**************************************************************** アルゴリズムとデータ構造 サンプルプログラム cat2.c <<ファイルの例: 入力ファイルを出力ファイルにコピー>> copyright (c) 1995,96,97 T.Mori ****************************************************************/ #include <stdio.h> main() { int c; FILE *infp,*outfp; infp = fopen("test1.txt","r"); /* test1.txt を読み出し用に開く.入力ファイル */ outfp = fopen("testout.txt","w"); /* testout.txt を書き込み用に開く.出力ファイル */ while ((c = getc(infp)) != EOF) /* EOFが現れるまで入力ファイルから文字を読み */ putc(c, outfp); /* 出力ファイルに書き込む */ fclose(infp); /* 各ファイルを閉じる */ fclose(outfp); exit(0); }

3 ファイル構造体FILE とファイルポインタ
OS (ファイルシステム)を通して、特定のファイルにアクセスする。 「ファイルハンドラ」として、ファイルポインタを割り当てる。 プログラムからは、ファイルの「現在位置」に対して読み出し(入力)や書き込み(出力)ができる。

4 テキストファイル test1.txt ファイルの内容は「文字列」:テキストストリーム ‘ ’(スペース)や‘\n’(改行)も1文字
h i s a t e f l . \n f i l e c o n t a s w . \n EOF ファイルの内容は「文字列」:テキストストリーム ‘ ’(スペース)や‘\n’(改行)も1文字 EOFはファイルの終わりを示す (厳密には、EOFは文字ではない)

5 一般的なファイルアクセス fopen関数を用いて、ファイルポインタinfpにtest1.txtを割り当てる。
アクセスの方法は、「読み出し」(入力) T h i s a t e f l . \n f i l e c o n t a s w . \n EOF cat2 は、infpの先頭から1文字ずつ入力を受け取る。 プログラム cat2 infp outfp cat2は 1文字ずつ outfp に出力する。 fopen関数を用いて、ファイルポインタoutfpにtestout.txtを割り当てる。 アクセスの方法は、「書き込み」(出力)

6 一般的なファイルアクセス T fopen関数を用いて、ファイルポインタinfpにtest1.txtを割り当てる。
アクセスの方法は、「読み出し」(入力) T h i s a t e f l . \n f i l e c o n t a s w . \n EOF T c = getc( infp ) ? c infp

7 一般的なファイルアクセス fopen関数を用いて、ファイルポインタinfpにtest1.txtを割り当てる。
アクセスの方法は、「読み出し」(入力) T h i s a t e f l . \n f i l e c o n t a s w . \n EOF c = getc( infp ) T c

8 一般的なファイルアクセス fopen関数を用いて、ファイルポインタinfpにtest1.txtを割り当てる。
アクセスの方法は、「読み出し」(入力) T h i s a t e f l . \n f i l e c o n t a s w . \n EOF putc (c, outfp) T c

9 一般的なファイルアクセス T fopen関数を用いて、ファイルポインタinfpにtest1.txtを割り当てる。
アクセスの方法は、「読み出し」(入力) T h i s a t e f l . \n f i l e c o n t a s w . \n EOF cat2は 1文字ずつ outfp に出力する。 → testout.txtに’T’が書き込まれる。 putc (c, outfp) T c T outfp

10 一般的なファイルアクセス h fopen関数を用いて、ファイルポインタinfpにtest1.txtを割り当てる。
アクセスの方法は、「読み出し」(入力) T h i s a t e f l . \n 1文字進む f i l e c o n t a s w . \n EOF h c = getc( infp ) h c infp

11 一般的なファイルアクセス h fopen関数を用いて、ファイルポインタinfpにtest1.txtを割り当てる。
アクセスの方法は、「読み出し」(入力) T h i s a t e f l . \n f i l e c o n t a s w . \n EOF cat2は 1文字ずつ outfp に出力する。 → testout.txtに(’T’に続けて) ’h’が書き込まれる。 putc (c, outfp) h c h outfp

12 一般的なファイルアクセス i fopen関数を用いて、ファイルポインタinfpにtest1.txtを割り当てる。
アクセスの方法は、「読み出し」(入力) T h i s a t e f l . \n 1文字進む f i l e c o n t a s w . \n EOF i c = getc( infp ) i c infp

13 一般的なファイルアクセス i fopen関数を用いて、ファイルポインタinfpにtest1.txtを割り当てる。
アクセスの方法は、「読み出し」(入力) T h i s a t e f l . \n f i l e c o n t a s w . \n EOF cat2は 1文字ずつ outfp に出力する。 → testout.txtに(’h’に続けて) ’i’が書き込まれる。 putc (c, outfp) i c i outfp

14 一般的なファイルアクセス … … fopen関数を用いて、ファイルポインタinfpにtest1.txtを割り当てる。
アクセスの方法は、「読み出し」(入力) T h i s a t e f l . \n 1文字ずつ進む f i l e c o n t a s w . \n EOF cat2は 1文字ずつ outfp に出力する。 → testout.txtの最後尾に 出力された文字が書き込まれる。 c = getc ( infp ) putc( c, outfp) c infp outfp

15 一般的なファイルアクセス fopen関数を用いて、ファイルポインタinfpにtest1.txtを割り当てる。
アクセスの方法は、「読み出し」(入力) T h i s a t e f l . \n f i l e c o n t a s w . \n EOF ファイルの終わり c = getc ( infp ) EOF c infp

16 一般的なファイルアクセス fclose関数を用いて、 fclose関数を用いて、 ファイルポインタoutfpを閉じる
ファイルポインタinfpを閉じる fclose ( infp ) fclose ( outfp ) EOF c infp outfp 終了


Download ppt "アルゴリズムとデータ構造 補足資料6-2 「サンプルプログラムcat2.c」"

Similar presentations


Ads by Google