基礎プログラミング2015

Similar documents
基礎プログラミング2015

基礎プログラミング2015

基礎プログラミング2015

untitled

プログラミング演習 土曜日(Q組)

演算増幅器

Microsoft PowerPoint - 第3回目.ppt [互換モード]

新版 明解C++入門編

デジタル表現論・第6回

Microsoft Word - no15.docx

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

情報処理演習 B8クラス

gengo1-12

ソフトゼミC 第二回 C++の基礎

C 資料 電脳梁山泊烏賊塾 ファイルの入出力 C++ のバイナリファイル入出力 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する

PowerPoint Presentation

基礎計算機演習 実習課題No6

Microsoft PowerPoint - class2-OperatorOverLoad.pptx

gengo1-12

※ ポイント ※

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

gengo1-12

とても使いやすい Boost の serialization

ファイル入出力

Prog1_6th

PowerPoint Presentation

Java講座

講習No.8

Microsoft Word - no11.docx

JavaプログラミングⅠ

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

Microsoft PowerPoint - prog06.ppt

ファイル入出力

PowerPoint プレゼンテーション - 物理学情報処理演習

プログラミング実習I

Microsoft Word - no204.docx

Microsoft PowerPoint - 14th.ppt [互換モード]

PowerPoint Presentation

Microsoft PowerPoint - program.ppt [互換モード]

memo

計算機プログラミング

プログラミング基礎

解きながら学ぶC++入門編

フィルタとは

1 C STL(1) C C C libc C C C++ STL(Standard Template Library ) libc libc C++ C STL libc STL iostream Algorithm libc STL string vector l

Taro-ファイル処理(公開版).jtd

C 資料 電脳梁山泊烏賊塾 ファイルの入出力 C++ のファイル入出力 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する 使用クラ

2

PowerPoint プレゼンテーション - 物理学情報処理演習

問題 01 水道料金を節約しよう 問題のポイント問題文で述べられた仕様を理解し その通りに動作するプログラムを記述できるかを問う問題です 変数 入出力 四則演算に加え 条件分岐や繰り返し処理についての知識が必要です 問題の解き方いくつかのアルゴリズムが考えられますが w が 100 以下と小さい値な

Microsoft Word - Cプログラミング演習(10)

Microsoft PowerPoint - 12.ppt [互換モード]

Microsoft PowerPoint - lec10.ppt

明解C++

情報処理概論(第二日目)

Microsoft PowerPoint - kougi2.ppt

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

JavaプログラミングⅠ

Microsoft Word - 3new.doc

プログラミングA

PowerPoint プレゼンテーション

ポインタ変数

PowerPoint プレゼンテーション

Microsoft Word - Cプログラミング演習(9)

2006年10月5日(木)実施

計算機プログラミング

PowerPoint プレゼンテーション - 物理学情報処理演習

kiso2-09.key

オブジェクト指向プログラミング・同演習 5月21日演習課題

JavaプログラミングⅠ

Microsoft PowerPoint - 12.ppt [互換モード]

Microsoft Word - DF-Salford解説09.doc

ポインタ変数

Prog1_12th

Microsoft Word - no103.docx

プログラミングA

PowerPoint プレゼンテーション

P6dark P6dark µ-pic 2 µ-pic 2 3 µ-pic µ-pic µ-pic 3 µ-pic (10cm ) MPGC N3035-KA195 No. SN ASD (16ns[C]) (16nsC

2

プログラミング基礎I(再)

Microsoft Word - Training10_プリプロセッサ.docx

Cプログラミング1(再) 第2回

データ構造

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

Microsoft PowerPoint - prog04.ppt

基本的な利用法

プログラミング基礎

Microsoft PowerPoint - prog08.ppt

Microsoft PowerPoint - 説柔5_間勊+C_guide5ï¼›2015ã•’2015æŒ°æŁŽæš’å¯¾å¿œç¢ºèª“æ¸‹ã†¿ã•‚.pptx

C言語入門

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

Microsoft PowerPoint - 計算機言語 第7回.ppt

第12回 モナドパーサ

Microsoft PowerPoint - kougi8.ppt

Microsoft PowerPoint - prog03.ppt

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

PowerPoint プレゼンテーション

Microsoft PowerPoint - adi05.ppt [互換モード]

ガイダンス

Transcription:

応用プログラミング 第 4 回 ファイル操作 2017 年 10 月 11 日 ( 水 )

第 6 章 ファイル操作

標準入出力とファイル (P.50) これまでのプログラム 入力 : キーボード 出力 : ディスプレイ Input an integer 1024 1024

標準入出力とファイル (P.50) 今回のプログラム 入力 : ファイル ( の内容 ) 出力 : ファイル Input a file name data.dat output.dat created

リダイレクション (P.50-51) Unix OS の機能のひとつ プログラムの作成はこれまで通り行う プログラムを実行する際に, < や > の記号を用いてファイルの入出力を行う 例 ) 整数をいくつか入力し, 和を算出するプログラム // example.cpp int main(){ int x, sum = 0; while(cin >> x){ sum += x; cout << sum << endl; return 0; 以下の num.dat ファイルに保存されている内容を入力に使いたい // num.dat 10-2 5 92-15

リダイレクション (P.50-51) 実行ファイル名 < データファイル名 ( 入力リダイレクト ) プログラム実行の際, 入力をファイルから読み込む方法 // 実行例 % example < num.dat 90 < < を用いて, cin 入力の際にファイルの内容が入力される. // num.dat 10-2 5 92-15

リダイレクション (P.50-51) 実行ファイル名 > 記録先ファイル名 ( 出力リダイレクト ) プログラム実行の際, 出力をファイルに書き込む方法 // 実行例 % example > sum.txt 10-2 5 92-15 (ctrl+d) < // sum.txt 90

リダイレクション (P.50-51) 実行ファイル名 < データファイル名 > 記録先ファイル名 入出力を共にファイルで行う方法 単純に, 入力リダイレクトと出力リダイレクトの両方を行えばよい // 実行例 % example < num.dat > sum.txt < < // sum.txt 90 // num.dat 10-2 5 92-15

cin, cout, cerr(p.50-51) cin や cout は <iostream> ヘッダファイルをインクルードすることによって初めて使えるようになるオブジェクト オブジェクト名変数型基本的役割 cin istream 標準入力 cout ostream 標準出力 cerr ostream 標準エラー出力 *cerr : プログラムがエラーを通知するための出力変数 標準出力と同様に, 画面 ( コンソール ) に文字を出力するための変数なので, cout と同じように使える. プログラムの内容に応じて, cout と使い分けるとよい ( 例 :cout は標準出力, cerr は入力エラーの際の出力に用いる ) ( 注 : リダイレクトを用いても, cerr は必ず画面に出力される )

パイプ (P.52) 以下の二つのプログラムを考える odd.cpp : 連続で入力された数字の奇数番目のみを出力する sum.cpp : 入力された数字の合計を求めて出力する odd.cppの出力をsum.cppで利用するには? 解決策 1: そもそも1つのプログラムにしてしまう 解決策 2:Unixの機能であるパイプを利用する // 実行例 の左の出力を右の入力に使用 % odd sum Input : 12 23 34 45 56 67 (ctrl+d) odd.cppへの入力 Sum : 102 sum.cpp の出力

パイプ (P.52) リダイレクションとパイプの組合せも可能 // 実行例 % odd < data.dat sum > sum.txt < // sum.txt 102 < // data.dat 12 23 34 45 56 67

指定ファイルからの入力 / 指定ファイルへの出力 (P.53-54) リダイレクションもプログラム内で行いたい <fstream> ヘッダファイルに用意されているファイル入力 出力 に用いる ifstream 型, ofstream 型の変数を用いる. ifstream 型, ofstream 型の変数宣言 ifstream 変数名 ( ファイル名 ) ofstream 変数名 ( ファイル名 ) fstream 変数名 ( ファイル名 ) // ファイルの読込 // ファイルへの出力 // ファイルの入出力

指定ファイルからの入力 / 指定ファイルへの出力 (P.53-54) ifstream 変数名 ( ファイル名 ) // ファイルの読込変数宣言 プログラム冒頭に #include<fstream> と記入することを忘れないこと! // ファイル読込の準備部分 ifstream fin( data.dat ); if(!fin){ cerr << cannot open << endl; return 1; fin を使うと, data.dat からの読込を行うように宣言 fin が正常に宣言されたか (=data.dat がちゃんと存在しているか ) どうかをチェック * この後, cin と同様に fin を使うだけで入力リダイレクトと同じになる

指定ファイルからの入力 / 指定ファイルへの出力 (P.53-54) ofstream 変数名 ( ファイル名 ) // ファイルへの出力変数宣言 プログラム冒頭に #include<fstream> と記入することを忘れないこと! // ファイル出力の準備部分 ofstream fout( result.txt ); if(!fout){ cerr << cannot open << endl; return 1; fout を使うと, result.txt への出力を行うように宣言 fout が正常に宣言されたか (=result.txt がちゃんと存在しているか ) どうかをチェック * この後, cout と同様に fout を使うだけで出力リダイレクトと同じになる

指定ファイルからの入力 / 指定ファイルへの出力 (P.53-54) // 奇数番目のみ出力するプログラム #include<iostream> #include<fstream> // 忘れないこと! using namespace std; int main(){ int x, num = 1; (1) (2) while(fin >> x){ if(num % 2 == 1) fout << x << endl; num++; return 0; // ファイル読込の準備部分 ifstream fin( data.dat ); if(!fin){ cerr << cannot open << endl; return 1; // ファイル出力の準備部分 ofstream fout( result.txt ); if(!fout){ cerr << cannot open << endl; return 1;

ファイル入出力と標準入出力 (P.55) ファイル入出力 (fin, fout) と標準入出力 (cin, cout) は 組み合わせて使うことができる. プログラム例 ファイルから読み込んだ名簿の中から, キーボードから打ち込んだ名前を探す. キーボードから入力したいくつかの数値を足し合わせて txt ファイルに記録する. etc cin, cout, fin, fout などの使い分けを間違えないこと!

#include<iostream> #include<fstream> using namespace std; ファイル入出力と標準入出力 (P.55) int main(){ int x, y; bool flag = false; cout << Input a target integer: ; cin >> y; ifstream fin( data.dat ); while(fin >> x){ if(x == y){ flag = true; break; if(flag) cout << y << exists in the data! ; return 0;

ファイル名の読み込み (P.56) 入出力に用いるファイルの名前をプログラム実行ごとに変更したい ただ, 毎回実行前にプログラムのファイル名の部分だけ書き直すのはとても面倒臭い ファイル名をキーボードからユーザが決定できるようにできる string 型の変数 + c_str() メンバ関数 string 型を用いるので, #include<string> を忘れないようにすること!! string filename; cout << Input a filename --> ; cin >> filename; ifstream fin(filename.c_str()); if(!fin){

ファイル名の読み込み (P.56) 右のようには書けないので注意 ifstream, ofstream は char 型の配列で初期化する必要がある obj.c_str() で string 型変数 obj から char 型配列を取り出せる string filename; cout << Input a filename --> ; cin >> filename; ifstream fin(filename.c_str()); if(!fin){ string filename; cout << Input a filename --> ; cin >> filename; ifstream fin(filename); if(!fin){

複数ファイルからのデータ入力 (P.57) #include<iostream> #include<fstream> #include<string> using namespace std; int main(){ const int sz = 3; string file[sz] = { data1.dat, data2.dat, data3.dat for(int i = 0; i < sz; i++){ ifstream fin(file[i].c_str()); if(!fin){ cerr << cannot open << file[i] <<endl; continue;.. ( 以下, 各ファイルの処理へ )..

練習問題 問題. 1 以上の整数 x を入力すると, 1 から x までの奇数を順に odd.txt に保存し, さらにその数が 3 の倍数ならば, コンソールにも出力するプログラムを作成せよ. ただし, 入力として正整数以外が入力されることはないとしてよい. // 実行例 1 正整数 x を入力 : 9 3 9 // odd.txt 1 3 5 7 9 // 実行例 2 正整数 x を入力 : 2 // odd.txt 1