『C Prime Plus』第8節ノート

1475 ワード

第8節文字入力/出力と入力検証
8.1単文字I/O:getchar()とputchar()
  • getchar()とputchar()はstdioに含まれる.hヘッダファイル
  • 8.2バッファ
  • バッファ入力なし:直接ユーザーに返信
  • バッファ入力:保留返信
  • バッファ:ユーザ入力文字を収集する一時記憶領域
  • 時間節約
  • は入力
  • を修正することができる.
  • 完全バッファI/o:バッファが満たされたときにバッファ
  • がリフレッシュする.
  • 行バッファI/O:改行が発生するとバッファ
  • がリフレッシュされる.
    8.3キーボード入力の終了
    8.3.1ファイル、ストリーム、キーボード入力
    8.3.2ファイルの末尾
  • ファイルの末尾に特殊な文字ファイルタグ(ctrl+z)
  • を配置する方法
  • 別の方法:ファイルサイズの情報を格納する
  • getchar()とscanf()ファイルの最後に読み込んでEOFに戻る
  • EOFはstdio.hにおける前処理定義
  • UNIXにおけるCtrl+D PCにおけるCtrl+Z

  • 8.4リダイレクトとファイル
    8.4.1 UNIX、Linux、DOSのリダイレクト
  • リダイレクト入力プログラム入力
  • ではなくプログラムにファイルを使用させる.
  • リダイレクト出力画面ではなくプログラムをファイルに出力
  • リダイレクト入力>
  • リダイレクト出力<
  • コンビネーションリダイレクト>出力ファイル
  • リダイレクトに関する要件:
  • プログラムはファイルと同じパスの下に
  • 置かれている.
  • cmdウィンドウ使用時にcd指令で経路
  • を変更する.
  • 一対一原則
  • <<
  • を上書きすることなくファイルの後に文字を追加することができる.

    8.5より友好的なユーザーインタフェースの作成
    8.5.1バッファ入力の使用
  • ユーザの各種入力を考慮する
  • .
  • 入力末尾
  • を処理する.
    8.5.2数値と文字入力の混合
  • getchar()スペース、タブ、改行を含む各文字を読み出し、scanf()は
  • をスキップします.
  • scanf()入力は数値を返し、数値は読み出し成功個数
  • を表す.
    8.6入力検証
    8.6.1分析手順
  • プログラムは、モジュール化されたプログラミング思想に従い、独立した関数(モジュール)を使用して入力および管理表示を検証する.

  • 8.6.2入力フローと数値
  • gatchar()および%cのscanf()は、すべての文字
  • を受け入れることができる.
    8.7メニュー閲覧
  • switch文
  • バッファ入力によるトラブルを解決し、余分な入力と改行記号
  • をスキップする.
        while(getchar()!='
    ') continue;