出力 - みる会図書館


検索対象: すぐわかるC/C++
157件見つかりました。

1. すぐわかるC/C++

実行例 A>samp1e Here are some . You may perform the program. A>type test Here some guidelines . You may perform the program . 3.3.3 造体データの出力 3.3 ディスクファイル ・・適当にキーホードから入力 ・・・入力の最後は CTRL-Z ・・ファイルか作成されたか調べる ハイナリモード ここまでで , ファイルへの入出力についての基本は終りです . 本節では , その応用として , 1. 11 節で説明した構造体などの特殊なデータを , ファイル に出力する場合を説明していきます . なお , 構造体データを出力させたファ イルを使って入力方法を説明しますので , 人力より先に出力を説明します . たとえば , 次のような構造体があったとします . struct Person { char name [ 20 ] : 土れに age : struct Person p; ・・構造体の定義 ・・ struct Pe 「 son 型の変数を盲 こういった構造体データをファイルに出力する方法を考えます . 構造体デ ータといっても , その出力手順は , 通常のデータ出力と同じです . ↓ 構造体テータを出力 ファイルを出力用にオープン ↓ ファイルをクローズ ただし , 構造体データを入出力する場合 , 通常はテキストファイルではな

2. すぐわかるC/C++

8 目次 ティスク入出力 グラフィックス”と “サウンド & 3.1 3.1. 3.1. 3.1 3.1 3.1 ・ 5 3.1.6 3.1. 7 .4 .3 2 1 3.5.8 3.5.7 3.5.6 3.5.5 3.5.4 3.5.3 3.5.2 3.5.1 3.5 3.4.2 3.4.1 3.4 3.3.4 3.3.3 3.3.2 3.3.1 3.3 3.2.3 3.2.2 3.2.1 3.2 3.1 .9 3.1 .8 カラフルな画面・ カラーで表示する・・・ 属性付きで表示する・・・ 画面の行数を変える・・・ 画面モードの保存・・・ ・・ 7 イ ・・ノイ ・・ 7 イ 8 ファンクションキーの表示・・ 画面のカット & ペースト・・・ カーソル移動・・・ ・・わ 6- 画面をクリア前の状態に戻す・・・ ・・ノ 53 ・・ノ 5 イ ・・ノ 5.7 アプリケーションのための汎用関数・・・ サウンド & アニメーション・・ いろいろな音を出す・・・ 周波数の規定値・・・ ホールを動かす・・・ ティスクファイル・・・ ファイルから入力・・ ファイルへ出力・・ 構造体テータの出力 構造体テータの入力・・・ ・・ノ 65 ・・ 770 ・・ 770 ・・ノ 7 イ ノヾイナリモード・・・ ・・ノ 82 ・・ノ 88 ・・ 78 イ ・・ 786- ・・ 788 ・・ 777 プリンタ・・ ・・ノ 8 イ プリンタ出力 [ 1 ] ・ プリンタ出力 [ 2 ] ・ グラフィックス・・ グラフィックスを使う BGI ライプラリをリンクするには ? ・・ クラフィックスドライハ・・・ ・・ノ .92 グラフィックスシステムの初期化・・・ B 工ラーの取得・・ グラフィックスの描画・・ ・・ 796 ・ ・・ノ .98 クラフィックスシステムの後処理・・・ クラフィックス画面をコピーする・・・ ・・み 90 ・・み 9 イ ・・み 99 ・・ 200

3. すぐわかるC/C++

77 イ 3 " サウンドグラフィックス”とディスクス出力 3.3.2 ファイルへ出力 ここではファイルに書き込むのですから , モ 示すモード "r" を指定しました . ドのことを思い出してください . 入力のときは , 人力用にオープンすることを は同じですが , 入力用にオープンしたときに f 叩 en の第 2 引数に指定したモー 出力用にファイルをオープンするには , 関数 fopen を使います . ここまで ・ファイルのオープン ですが書き込みゆえの注意点がいくつかあります . イルに出力する方法を説明します . ファイルへの出力も , 人力と手順は同じ ファイルからデータを入力する方法が分かったところで , 次にデータをファ ードは早の代りに " w " を使います . fp 出力用にオープンすることを示す fopen いし es し " 0 オープン時のエラーチェック を第 2 引数のファイルに出力します . ことができます . fputc は fgetc の反対 , つまり第 1 引数に指定された 1 文字 オープンに成功したら , 次の関数などを使ってデータをファイルに出力する ・テータの出力 オープンに成功したときの処理 return 1 : オープンに失敗したときの処理 if ( ! ()p = fopen("test" いる場合などでエラーになるからです . は , すでにそのファイルが存在し , かっそのファイルが書き込み禁止になって プン時のエラーチェックを行わなくてもよいわけではありません . 出力の場合 ーにはなりません . 新規ファイルとしてファイルを作成します . しかし , オー 出力の場合は入力と違って , 指定したファイルが存在しないときでもエラ

4. すぐわかるC/C++

7 / 8 .3 " サウンド & グラフィックス " とディスクス出力 く , バイナリファイルとして人出力します . そこで , 最初にテキストファイル とバイナリファイルの違いを簡単に説明します . ・テキストファイルとバイナリファイル ちなみに上記コードを 10 進数で表現すると , 次のようになります . 出力時に 0x1a を出力すると , それ以上のテータを出力できない . 入力時 , ファイルの途中に Ox1a があると , それ以後のテータを入力しない . ◎ Ox1a をファイルの終りと見なす . 出力時には , その逆変換を行う ◎入力時に洋 + 洋がを洋がに変換する . テキストモードでは , 入出力時に次のようなサービスが行われます . 特に指定しないと , テキストモードで入出力されます . ドの 2 種類の方法があります . この 2 つのモードは , MS - DOS 固有のもので , MS - DOS でファイルを入出力する場合は , テキストモードとバイナリモー ・テキストモードとバイナリモード イルは , そのデータの並びに意味があります . ンドなどで表示させると , めちやめちゃな内容が表示されます . バイナリファ て読むことのできないファイルです . このためバイナリファイルを PE コマ それに対してバイナリファイルとは , 実行ファイルのように内容を文字とし で読むことができるファイルがテキストファイルです . テキストエデイタで作成・編集することができます . つまり , ' ハ ' PE コマンド テキストファイルとは , その内容を文字として読むことのできるファイルで , 0x1a 10 進数 1 0 26 もし , 構造体メンバーの中に上記のデータが含まれていると , おかしな入 出力になってしまいます . たとえば構造体メンバーに int 型データが含まれて いて , その値が 10 であるとき , 構造体データを丸ごと出力すると 10 の前に 13 が挿入されます .

5. すぐわかるC/C++

ノ 82 3 " サウンド & グラフィックス " とディスクス出力 3.3.4 造体データのスカ 次に , ファイルから構造体のデータを入力する方法を説明します . ルは , 前節のデータ出力で使った test を使います . 0 ファイルのオープン バイナリモード ファイ ファイルをオープンするには , f 叩 en 関数を使います . 第 2 引数のモードに は , 入力モードの "r" を指定します . さらに , バイナリモードの "b" を指定し ます . fp fopen (F 工 LENABE, 0 データの入力 構造体データの人力には , fwrite に対して fread という関数を使います . fread(&p, sizeof (struct Person), fread の使い方は , fwrite と同じです . データのサイズ テータの個数 入力するファイルポインタ 入力テータのアトレス 次に , 前節で構造体データを出力させた test から , データを入力するプロ グラムを示します .

6. すぐわかるC/C++

770 3 " サウンド & グラフィックス " とディスクス出力 ディスクファイル ければなりません . ファイルをオープンするには , 標準関数の f 叩 en を使いま ファイルからデータを読み込むには , 入力用にそのファイルをオープンしな ・ファイルのオープン ファイルをクローズ ↓ テータを入力 ↓ ファイルを入力用にオープン 単にその手順だけを説明すると , 次のようになります . 最初にまず , ファイルからデータを入力する場合について説明します . 簡 は , プログラムが若干異なります . ファイルからデータを入力する場合と , ファイルにデータを出力する場合で くは , このファイルの入出力について説明していきます . するのは , データベースなどのプログラムには欠かせません . 本節以降しばら ファイルからデータを読み込んだり , またファイルにデータを書き込んだり 3.3.1 ファイルからスカ す . 次に f 叩 en のヘッダを見てみます . F 工 LE *fopen (char *filename ′ char *mode) これを見てわかるように , fopen は FILE 型のポインタを返します . FILE 型

7. すぐわかるC/C++

3 " サウンド & グラフィックス " とディスクス出力 O_wscroIl —wscroll は , Turbo C + + 特有の外部変数で , く conio. h> の中で定義されて います . これを 0 にすると , cprintf や putch で画面に文字などを出力したと きに , 画面右下端からはみ出してもスクロールしなくなります . アニメーショ ンでは , ポールが画面の右下端にきたとき , スクロールしては困るからです . を設定します . 次に示す記号定数を引数として指定します . —setcursortype は , く conio. h> で定義されている関数で , カーソルの形など setcursortype また , ー wscro Ⅱを 1 にすると , スクロールを開始します . 記号定数 NOCURSOR SOLIDCURSOR LINECURSOR NORMALCURSO 意味 カーソルを表示しない プロックカーソルを表示する ラインカーソルを表示する カーソルを表示する ここでは , ボールが移動するときにカーソルが表示されているとチカチカし て見にくいので , カーソルを表示しないように設定します . Okbhit kbhit は , <conio. h> の中で定義されている関数で , どうかをチェックし , 次の値を返します . キーポードが押されたか キーポード 押された 押されていない 戻り値 0 以外 0 また kbhit は , 何らかのキーが人力されたかどうかをチェックするだけで , 入力された文字は取り込みません . そのため , MS - DOS に戻ったときにその キーが有効になってしまいますので , getch() を使って人力されたキーを捨て ます . こでは , kbhit を使って , キーポードから入力があるまでポールを表示さ せています .

8. すぐわかるC/C++

2 プログラミングの定石 main ( ) char select; select = get—charset(" よろしいですか (Y/N) ? " printf("%c が選択されました Yn", select); re turn 0 : 実行例 よろしいですか (Y/N) ・・不正な入力 ( ベルが嗚る ) ? Q よろしいですか (Y/N) これも不正な入力 ( ベルか嗚る ) ? W よろしいですか (Y/N) ・・正しい入力 ? Y Y が選択されました ・入力された文字を示す get-charset の主要部分は , 大きな for ループになっています . for ( ; ; ) は , 初期設定や条件などを何も指定していません . for 文でこう書くと無限ループに なり , re ⅲ rn 文などでループを抜ける指示をしない限り , ループを繰り返します . 全体の構成は , 次のようになります . for プロンプトを出力 1 文字入力 if ( 正しい入力 ) return 入力された文字 : ベルを鳴らす else getche はキーポードから 1 文字人力する関数で , ヘッダファイルく conio. h > が必要です . strchr は第 1 引数の文字列の中に第 2 引数の文字が入っている かを調べ , 入っていればその文字のポインタを返し ( 真 ) , なければ 0 を返しま す ( 偽 ) . strchr は , ヘッダファイル <String. h> が必要です . つまり , 正しい人力が行われていればその文字を返し , 不正な文字が人力 されていればベルをならし再度入力を求めています . 少し複雑な気もします力 : , 実際に自分で入力して動きを確かめてみるとよ いでしよう .

9. すぐわかるC/C++

33 ディスクファイル ノヾイナリモードで入出力すれば , 上記のようなサービスは行われません . なお , テキストモード / バイナリモードとテキストファイル / バイナリファ イルとは直接関係ありませんが , テキストモードはテキストファイルを入出力 するのに適していますし , バイナリモードはバイナリファイルを入出力するの に適しています . ・ファイルのオープン 出力用にファイルをオープンしますが , これは前節と同様に f 叩 en 関数を 使います . ただし , 第 2 引数の文字列にバイナリモードを意味する b を含め ファイルをハイナリモートの出力用にオープン fp = fopen ( ”し es し” F 工 LE * fp; ます . ・オープン時のエラーチェック ファイルオープン時のエラーチェックも同様に行います . には , if ・テータの出力 オープンに成功したときの処理 re turn 1 : オープンに失敗したときの処理 ( ! ()p = fopen("test" fputc ではなく , fwrite という標準関数の方が適しています . この関数 オープンに成功したらデータの出力を行います . 構造体データを出力する fwrite(&p. sizeof(struct person) , 1. (p) : を使えば , 構造体データを一度に出力できます . 出力テータのアトレス ァータのサイズ テータの個数 出力するファイルポインタ ノ 79

10. すぐわかるC/C++

3 " サウンド & グラフィックス " とディスクス出力 0 テータの入力 ファイルのオープンに成功したら , 次の関数などを使って , ファイルからデ ータを入力することができます . fgetc は , ファイルから 1 文字入力する関数で , ファイルポインタを引数と ます . EOF は stdio. h で定義されていて一 1 のことです . して渡します . また fgetc は , ファイルの最後やエラーになると EOF を返し c fgetc ( (p) : 、・ c に 1 文字入力 ファイルの最後またはエラーたと EOF を返す 0 ファイルのクローズ クローズに失敗したときの処理 if (fclose(fp) ) { ようにエラーチェックを行います . は , クローズに成功すると 0 を , 失敗すると EOF(-I) を返しますので , 次の fclose には , 次のようにファイルポインタの fp を渡します . また , fclose す . しなければなりません . ファイルのクローズには , 標準関数の fclose を使いま ファイルからデータを入力し終わったら , オープンしたファイルをクローズ return 1 : else return 0 ー この場合は成功 次に , ファイルをオープンし , そのファイルから入力した文字を標準出力 に出力し , ファイルをクローズして終了するプログラムを示します . fgetc はファイルの最後になると EOF を返しますので , それを while 文で 判定しています . また , fgetc が入力した文字が int 型なのに注意してくださ