りーまの日記

特に外向けに配信しているわけではないので読みにくいかもしれませんが参考になれば幸いです

独習C9.3-1

独習Cの進捗状況

 

とりあえずコマンドライン引数が使えるようになったのでやっと独習Cが進めます

 

-------2月16日----------------------------------------

strcmp(文字列1,文字列2)
 <string.h>
 2つの文字列を比較する
「文字列1」「文字列2」が同じ時に0を返す

putchar()
 <stdio.h>
 画面に1文字だけを出力します
 出力エラーが出た場合EOFを返す
 printf()で%c指定子を使って1文字出力するなら、実行速度と効率の点で
 putchar()を使う方が有利
 printf()は非常に多くの機能を持つ柔軟な関数ですがその分、putchar()の呼び出しに比べてオーバーヘッドが大きい


feof(FILE *ストリーム)
 ストリームに結び付けられているファイルの終わりに達していれば
 0以外の値を返し、そうでなければ0を返す

ferror(FILE *ストリーム)
 ストリームに結び付けられているファイルに関してエラーが起こっていれば
 0以外の値を返し、そうでなければ0を返す


次の関数はファイルの終わりまで読み取りエラー検査を追加したもの
 
FILE *fp;

 ・
 ・
 while(!feof(fp)){
  ch=fgetc(fp);
  if(ferror(fp)){
   printf("ファイルエラー\n");
   break;
  }
 }

補足
 本参考書はferror()は省略することがあるが実際はきちんとエラー検出をすべき

 /*ferror()ってなんかちょっと曖昧な感じがしますね*/