C Primer Plus(5版)第8章練習問題説明(一)
1327 ワード
C Primer Plusの第5版の第8章の練習問題3は私がとても良い練習問題だと思って、入力関数、リダイレクトなどの多種の技術を考察して、この問題を完成して、C言語の標準I/Oに対してもっと深い認識があります.
入力した文字数をカウントするプログラムcountがあるとします.countプログラムでコマンドラインコマンドを設計し、ファイルessayの文字をカウントし、結果をessayctというファイルに保存します.
この問題の要求は、以下のようにまとめて分析します.題で入力文字数のカウントを要求する 分析:この要求は以下の点に設計されています.は、入力を受信できる関数を必要とする.getchar関数で試してもいいと思います. この入力関数をどのように教えて、入力はすでに終わりました.フラグ入力終了は、リターンキーではなく、EOFという特有の終了フラグです. カウント専用カウンタ.これは変数を1つ使えばいいです.
2.countプログラムでコマンドラインコマンドを設計する
分析:タイトル要求countプログラムはコマンドであり、cmdウィンドウまたはshellで実行する必要があります.これは難しくありません.countプログラムのコンパイルに成功すれば、実行可能なプログラムを生成すればいいです.
3.ファイルessayの文字をカウントする
解析:countプログラムの入力は、一般的なキーボード入力ではなく、既存のファイルから来ています.ではcountプログラムにファイルessayから文字を読み込ませ、ファイルが末尾に達したかどうかを判断する技術が必要です.この技術はリダイレクト技術だと思いますが、フラグファイルの末尾のフラグはEOFです.
4.カウント結果をessayctというファイルに保存する
分析:countプログラムは、単純な出力の大きなディスプレイではなく、カウントの結果をファイルに出力します.したがってcountプログラムが結果をファイルにインポートする技術が必要です.この技術もリダイレクト技術である.
上の初歩的な分析があれば,この問題の要求を実現するために初歩的なコードを書くことができる.C言語コードは以下の通りである.
入力した文字数をカウントするプログラムcountがあるとします.countプログラムでコマンドラインコマンドを設計し、ファイルessayの文字をカウントし、結果をessayctというファイルに保存します.
この問題の要求は、以下のようにまとめて分析します.
2.countプログラムでコマンドラインコマンドを設計する
分析:タイトル要求countプログラムはコマンドであり、cmdウィンドウまたはshellで実行する必要があります.これは難しくありません.countプログラムのコンパイルに成功すれば、実行可能なプログラムを生成すればいいです.
3.ファイルessayの文字をカウントする
解析:countプログラムの入力は、一般的なキーボード入力ではなく、既存のファイルから来ています.ではcountプログラムにファイルessayから文字を読み込ませ、ファイルが末尾に達したかどうかを判断する技術が必要です.この技術はリダイレクト技術だと思いますが、フラグファイルの末尾のフラグはEOFです.
4.カウント結果をessayctというファイルに保存する
分析:countプログラムは、単純な出力の大きなディスプレイではなく、カウントの結果をファイルに出力します.したがってcountプログラムが結果をファイルにインポートする技術が必要です.この技術もリダイレクト技術である.
上の初歩的な分析があれば,この問題の要求を実現するために初歩的なコードを書くことができる.C言語コードは以下の通りである.
#include
#include
int main(void)
{
int counter = 0; //
int ch; //
while( EOF != (ch = getchar()) ) // getchar ,
{
counter++; //
}
printf("%d", counter);
return 0;
}