Presentation is loading. Please wait.

Presentation is loading. Please wait.

第13回 http://www.fit.ac.jp/~matsuki/lecture.html プログラミングⅡ 第13回 http://www.fit.ac.jp/~matsuki/lecture.html.

Similar presentations


Presentation on theme: "第13回 http://www.fit.ac.jp/~matsuki/lecture.html プログラミングⅡ 第13回 http://www.fit.ac.jp/~matsuki/lecture.html."— Presentation transcript:

1 第13回 http://www.fit.ac.jp/~matsuki/lecture.html
プログラミングⅡ 第13回

2 連絡 小テスト 授業開始直後と終了直前に小テストを2行います 授業開始直後テスト(復習テスト)⇒前回の復習
授業終了直前テスト(本テスト)⇒その日の内容の復習 本テストの成績(正答率)が50%以下の場合は、宿題を出します(レポートとは別)。 宿題を決められた期日までに提出しない場合は、欠席扱いにします

3 宿題の提出について 以下の場合は、出題日の出席を欠席とする 締切日を過ぎた場合 正解率が7割未満の場合
提出は、PDFファイルを印刷して、それに答えを書いて提出すること。

4 プログラミングに関する質問時間 月曜日と金曜日の12:00から13:00までは, CAE室で,プログラミングに関する質問を受け付けています. 遠慮なく相談に来てください.

5 今日の内容 ファイルへの入出力 fprintf関数 fscanf関数 fputs関数 fgets関数

6 ファイル操作の基本 ファイルの読み書きは以下の手順で行う. fprintf関数 fputs関数 ファイルをオープン(OPEN)する
ファイルを 読み / 書きする ファイルをクローズ(CLOSE)する fprintf関数 fputs関数 fscanf関数 fgets関数 ①オープン ②読み書き ③クローズ

7 fp = fopen(“input.txt”, “w”);
#include <stdio.h> main() { FILE *fp; int i; double x = 1.3; //1.ファイルをオープン fp = fopen(“input.txt”, “w”); //2.ファイルに書きこむ for (i = 0; i < 3; i++) fprintf(fp, “%.1lf\n”, x + 0.4*i); //3.ファイルをクローズ fclose(fp); } 実行結果(ファイルの中身) 答えは次ページへ ファイルをオープン 小数第1位まで表示 ファイルに書き込み ファイルをクローズ

8 テキストファイルの例 input.txt 1.3 1.7 2.1 テキストファイルとは: ・文字コードだけで構成されたファイル.
・メモ帳,Wordなどで編集することができる. ・拡張子は「txt」を指定する.

9 ファイルからの読み込み(fscanf関数)
fopen関数でオープンモードを”r”に指定 オープンしたファイルに対して,書式付でデータを読み込む. 第1引数にファイルポインタを指定する. 書式指定の方法はscanf関数と同様 構文: fscanf(fp, 書式指定文字列) 使用例: input.txtから実数型としてファイルの先頭の値をxという変数に読み込む FILE *fp; double x; fp = fopen(“input.txt”, “r”); fscanf(fp, “%lf”, &x); printf(“読み込んだ値は%lf”,x);

10 fscanf(fp, “%lf”, &x); fscanf(fp, “%lf”, &y); fscanf(fp, “%lf”, &z);
#include <stdio.h> main() { FILE *fp; double x, y, z; //1.ファイルをオープン fp = fopen(“input.txt”, “r”); //2.ファイルから値を読み込む fscanf(fp, “%lf”, &x); fscanf(fp, “%lf”, &y); fscanf(fp, “%lf”, &z); //3.ファイルをクローズ fclose(fp); } 実行結果 変数xは? 変数yは? 変数zは? 1.3 1.7 2.1 ファイルを読み込みモードで オープン ファイルから3つの値を 順に読み込む ファイルをクローズ

11 ファイルからの書き込み(fputs関数)
fopen関数でオープンモードを”w”に指定 オープンしたファイルに対して,1行書き込む ファイルポインタは第2引数に指定する. 改行コードが自動的に追加されない 構文: fputs (書き込む文字列,fp) 使用例: message.txtに文字列を書き込む FILE *fp; char str1[50] = “Thank you!\n”; char str2[50] = “Good Bye.”; fp = fopen(“message.txt”, “w”); fputs(str1, fp); fputs(str2, fp);

12 テキストファイルの例 message.txt Thank you! Good Bye.

13 ファイルからの読み込み(fgets関数)
fopen関数でオープンモードを”r”に指定 オープンしたファイルから,1行読み込む. ファイルの最後の行を読むと,戻り値としてNULLを返す 第2引数に最大文字数を指定する. 第3引数にファイルポインタを指定する. 読み取る文字には,改行コードも含まれる

14 ファイルからの読み込み(fgets関数)
構文: message.txtから1行目をstrに読み込む 使用例: FILE *fp; char str[100]; fp = fopen(“message.txt”, “r”); fgets(str, 50, fp); printf(“1行目は%s”,str);

15 入力された文字列strをファイルに書き込み
#include <stdio.h> main() { FILE *fp; char str[50]; //書き込み fp = fopen(“message.txt”, “a”); puts(“文字列を入力してください”); gets(str); fputs(str, fp); fclose(fp);   //読み込み   fp = fopen(“message.txt”, “r”); fgets(str, 50, fp);   puts(str);   fclose(fp); } 追記モード (末尾に追加される) 入力された文字列strをファイルに書き込み ファイルから1行を読み出し,strに格納

16 ファイルのすべての行を読み出す (fgetsの使い方)
fgetsの戻り値(char型へのポインタ)がNULLであれば,読み出しが終わったことを表す char *p; FILE *fp; char str[100]; int count = 0; ・・・ p = fgets(str, 100, fp); while (p != NULL) {   count++;   printf(“%d行: %s”, count, str);   p = fgets(str, 100, fp); } FILE *fp; char str[100]; int count = 0; ・・・ while (fgets(str) != NULL) {   count++;   printf(“%d行: %s”, count, str); } 簡略化

17 ファイルのすべてを読み出す (fscanfの使い方)
fscanfの戻り値(int型)がEOFであれば,読み出しが終わったことを表す int end; FILE *fp; char str[100]; int count = 0; ・・・ end = fscanf(fp, “%d”, str); while (end != EOF) {  count++;  printf(“%d行: %s\n”, count, str);  end = fscanf(fp, “%d”, str); } FILE *fp; char str[100]; int count = 0; ・・・ while (fscanf(fp, “%d”, str) != EOF) {  count++;  printf(“%d行: %s\n”, count, str); } 簡略化

18 scanfの応用 scanf(“%d”, &x) xに値を一つ入力
scanf(“%d %d”, &x, &y) xとyをスペースを挟んで入力 scanf(“%d,%d”, &x,&y) xとyをカンマ区切りで入力

19 fscanfの応用 読み込むファイル(スペース区切りで2列にデータが並んでいる) 1.2 3.4 int x; double y; fscanf( fp, “%d %lf”, &x, &y);//1行で2列読む


Download ppt "第13回 http://www.fit.ac.jp/~matsuki/lecture.html プログラミングⅡ 第13回 http://www.fit.ac.jp/~matsuki/lecture.html."

Similar presentations


Ads by Google