C言語なら俺に聞け(入門編)Part 74
■ このスレッドは過去ログ倉庫に格納されています
0508デフォルトの名無しさん
2010/12/10(金) 01:15:03while((c=fgetc(fp))!=EOF){
if(iskanji(c)){
fputc(c,stdout);
fputc(fgetc(fp),stdout);
}
参考書のサンプルの一部です fpはFILE型のポインタです
ちなみにiskanji(c)についてはマクロで以下のように定義されてます
#define iskanji(c)\
(0x81 <= (c & 0xff)&&(c & 0xff) <= 0x9f || 0xe0 <= (c & 0xff) && (c & 0xff) <= 0xfc)
どうやらcがシフトジス漢字コードの一バイト目であるかをこれで判断するようです
真の場合ifの条件式以下の[]が実行されます
質問の内容は[]の動作です
fputc(c,stdout);
fputc(fgetc(fp),stdout);
私にはどちらの行も同じ動作をしているように思われます。
この部分の説明をお願いしたいです
■ このスレッドは過去ログ倉庫に格納されています