情報処理演習C2 ファイル操作について (2).

Slides:



Advertisements
Similar presentations
10: ファイル入出力 Linux にログインし、以下の講義ページ を開いておくこと teachers/w483692/CPR1/ C プログラミング入門 総機 1 ( 月 1) 1.
Advertisements

オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
【事例演習5】  字句解析     解 説  “ハッシュを用いた字句解析の方法”.
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
第13回 プログラミングⅡ 第13回
12: コマンドライン引数 C プログラミング入門 総機1 (月1) Linux にログインし、以下の講義ページ を開いておくこと
第8回 プログラミングⅡ 第8回
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
ファイル操作と文字列の利用.
10: ファイル入出力 C プログラミング入門 基幹2 (月4) Linux にログインし、以下の講義ページ を開いておくこと
第2回 Microsoft Visual Studio C++ を使ってみよう
Cプログラミング演習 第6回 ファイル処理と配列.
プログラミング 2 ファイル処理.
プログラミング論 ファイル入出力
プログラミング入門2 ファイルの入出力 ポインタ 芝浦工業大学情報工学科 青木 義満
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第2回 ファイル処理 情報・知能工学系 山本一公
プログラミング 4 記憶の割り付け.
プログラミング演習I 2003年6月25日(第10回) 木村巌.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
プログラミング論 ファイル処理 (中級編)
第13章 文字の取り扱い方 13.1 文字と文字型変数 13.2 文字列 13.3 文字型配列への文字列の代入
第13章 文字の取り扱い方 13.1 文字と文字型関数 13.2 文字列 13.3 文字型配列への文字列の代入
プログラミング論 ファイル入出力
P n ポインタの基礎 5 q m 5 7 int* p; int 型の変数を指すポインタ int* q; int 型の変数を指すポインタ int n=5, m=7; int 型の変数 int array[3]; int* pArray[3]; p = &n; ポインタにアドレスを代入しているのでOK.
Cの実行モデル.
09: ポインタ・文字列 C プログラミング入門 総機1 (月1) Linux にログインし、以下の講義ページ を開いておくこと
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
プログラミング基礎B 文字列の扱い.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
第4回 ファイル入出力方法.
C言語演習 情報ネットワーク特論.
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
文字列へのポインタの配列 static char *lines[MAXLINES]; lines[0] NULL
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
プログラミング演習I 2003年7月2日(第11回) 木村巌.
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
高度プログラミング演習 (09).
第13章 文字の取り扱い方 13.1 文字と文字型変数 13.2 文字列 13.3 文字型配列への文字列の代入
ファイルの読み込み, ファイルからのデータの取り出し, ファイルの書き出し
ネットワーク・プログラミング Cプログラミングの基礎.
ファイル操作について (1).
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
モジュール分割.
プログラミング 4 文字列.
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
C言語プログラミング・課題 ファイルを読み込んで、その内容を表示するプログラムを作成せよ。
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
プログラミング演習II 2004年11月 16日(第5回) 理学部数学科・木村巌.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
12: コマンドライン引数 C プログラミング入門 基幹2 (月4) Linux にログインし、以下の講義ページ を開いておくこと
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

情報処理演習C2 ファイル操作について (2)

ファイル操作 (1) temp.txt FILE* fp = fopen("temp.txt","r"); int value0; fscanf(fp,"%d\n",&value0); int values[4]; fscanf(fp,"%d, %d, %d, %d\n",&values[0],&values[1],&values[2],&values[3]); char buf0[1024]; fgets(buf0,sizeof(buf0),fp); char buf1[1024]; fgets(buf1,sizeof(buf1),fp); fclose(fp); 1 2, 3, 4, 5 L 3 L 4 value0 values[4] ? 1 ? 2 3 4 5 buf0[1024] ? L 3 \n \0 ? ・・・ buf1[1024] ? L 4 \n \0 ? ・・・

ファイル操作 (2) temp.txt FILE* fp = fopen("temp.txt","r"); char buf[1024]; while(NULL!=fgets(buf,sizeof(buf),fp)){ printf("buf=%s",buf); } fclose(fp); 1 2, 3, 4, 5 L 3 L 4 buf[1024] L 3 \n \0 ? 2 , 3 4 5 1 \n \0 ? ? L 4 \n \0 ? ・・・

ファイルの操作 (3) 一度ファイルの最後まで読み込んだ後で、もう一度ファイルを最初から読み直すには? fcloseしてから、もう一度fopenする。 ファイルから読み込んだ情報を、配列に保存しておく。

関数の基本 変数に値を入れるもの 自分で関数を作る場合と、予め用意された関数を使う場合がある。 int ret = function(1,2); 自分で関数を作る場合と、予め用意された関数を使う場合がある。

文字列処理関数: strncmp 指定した数の文字を比較する。 int ret = strncmp("abc","abc",3); int ret = strncmp("abc","abcd",3); int ret = strncmp("abc","abcd",4); retに-1が代入される。 int ret = strncmp("abd","abc",3); retに1が代入される。

文字列処理関数: strstr 文字列の中から、指定された文字列を捜す。 char* ptr = strstr("abc","a"); ptrに"a"の部分を指すポインタが代入される。 char* ptr = strstr("abc","bc"); ptrに"bc"の"b"の部分を指すポインタが代入される. char* ptr = strstr("abc","d"); ptrにNULLが代入される。

文字列処理: sscanf 主に文字列を数値に変換する。 int ivalue1,ivalue2; int ret = sscanf("5","%d",&ivalue1); retに1が代入される。ivalue1に5が代入される。 int ret = sscanf("5,6","%d,%d",&ivalue1,&ivalue2); retに2が代入される。ivalue1、ivalue2に5,6が代入される。 int ret = sscanf("abc","%d",&ivalue1); retに0が代入される。ivalue1には何も入らない。

文字列処理の例 char* ptr = strstr("str,1,name",","); int ivalue; ptrは、",1,name" という文字列ともいえる。 ptr+1は、"1,name"という文字列になる。 int ivalue; int ret = sscanf(ptr+1,"%d",&ivalue); ivalueに1が入る。