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

Slides:



Advertisements
Similar presentations
プログラミング演習 II 2005 年 1 月 19 日(第 9 回) 理学部数学科・木村巌. 前回までの復習 共用体( union type ) 共用体( union type ) 列挙 (enumerated type ) 列挙 (enumerated type ) 構造体、構造体のポインタ、
Advertisements

第 10 回 宿題 出題日: 12 月 14 日 締切日: 12 月 21 日. 提出について 以下の場合は、出題日の出席を欠席とする 締切日を過ぎた場合 正解率が 7 割未満の場合 提出は、 PDF ファイルを印刷して、それに答 えを書いて提出すること。
10: ファイル入出力 Linux にログインし、以下の講義ページ を開いておくこと teachers/w483692/CPR1/ C プログラミング入門 総機 1 ( 月 1) 1.
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
応用理工学情報処理 第1回(2015年10月 5日) 月曜日担当 前島展也 Manaba
情報処理演習C2 ファイル操作について (2).
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
プログラミング入門2 第7回 文字列 数学関数 ファイルの入出力 芝浦工業大学情報工学科 青木 義満
構造体(struct) 配列では、複数のデータをひとまとまりにして操作する ことが出来る。しかし、それぞれのデータは同じ型(例えば
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
基礎プログラミングおよび演習 第9回
C言語 配列 2016年 吉田研究室.
12: コマンドライン引数 C プログラミング入門 総機1 (月1) Linux にログインし、以下の講義ページ を開いておくこと
記憶クラス 変数をどのような記憶領域に割り当てるかを指定するのが記憶クラス 記憶クラスには、自動変数、静的変数、外部変数などがある。
第8回 プログラミングⅡ 第8回
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
情報処理Ⅱ 第13回 2006年1月20日(金).
アルゴリズムとデータ構造 補足資料6-3 「サンプルプログラムcat3.c」
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第11回 プロセス間通信4 仮想FTPの実現 担当:青木義満
前回の復習 ファイル入出力①.
情報処理Ⅱ 第13回 2004年01月25日(火).
第10回 プログラミングⅡ 第10回
10: ファイル入出力 C プログラミング入門 基幹2 (月4) Linux にログインし、以下の講義ページ を開いておくこと
第2回 Microsoft Visual Studio C++ を使ってみよう
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
Cプログラミング演習 第6回 ファイル処理と配列.
プログラミング 2 ファイル処理.
プログラミング論 ファイル入出力
プログラミング入門2 ファイルの入出力 ポインタ 芝浦工業大学情報工学科 青木 義満
Cプログラミング演習.
第11回 宿題 出題日:12月21日 締切日:1月7日(木).
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第2回 ファイル処理 情報・知能工学系 山本一公
プログラミング演習I 2003年6月25日(第10回) 木村巌.
プログラミング論 ファイル処理 (中級編)
第7回 プログラミングⅡ 第7回
地域情報学 C言語プログラミング 第5回 ポインタ、関数、ファイル入出力 2017年11月17日
プログラミング論 ファイル入出力
アルゴリズムとデータ構造 補足資料6-2 「サンプルプログラムcat2.c」
第11回 プログラミングⅡ 第11回
Cの実行モデル.
プログラミング入門 第12回 情報工学科 篠埜 功.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
第4回 ファイル入出力方法.
システムプログラミング 第7回、8回 ファイルシステム関連の システムコール
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
C言語 はじめに 2016年 吉田研究室.
プログラミング序論演習.
プログラミング演習I 2003年7月2日(第11回) 木村巌.
ファイルの読み込み, ファイルからのデータの取り出し, ファイルの書き出し
標準入出力、変数、演算子、エスケープシーケンス
情報処理Ⅱ 2007年1月26日(金).
ファイル操作について (1).
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
モジュール分割.
アルゴリズムとデータ構造 補足資料6-1 「サンプルプログラムcat1.c」
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
C言語プログラミング・課題 ファイルを読み込んで、その内容を表示するプログラムを作成せよ。
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
コンピュータープログラミング (C言語)(10) 1.ファイル入出力
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
12: コマンドライン引数 C プログラミング入門 基幹2 (月4) Linux にログインし、以下の講義ページ を開いておくこと
Presentation transcript:

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

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

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

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

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

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

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位まで表示 ファイルに書き込み ファイルをクローズ

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

ファイルからの読み込み(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);

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つの値を 順に読み込む ファイルをクローズ

ファイルからの書き込み(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);

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

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

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

入力された文字列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に格納

ファイルのすべての行を読み出す (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); } 簡略化

ファイルのすべてを読み出す (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); } 簡略化

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

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