C言語関係掲示板

過去ログ

No.2. VC++でのCTRL+Zの入力(1)


初めまして。coffeeと申します.
ここのC言語の説明がわかりやすいので利用させてもらっています。
それで、ここのホームページに載ってる第8章−2の演習を自分でも練習のために同じプログラムを打ってみたのですが、結果がa,b,cが抜けてて、d: O個入力 から、zまでの表示しかしてくれません。
どこが悪いのか教えていただけないでしょうか?
これが、自分で打ったプログラムです。
#include <stdio.h>
#include <ctype.h>

int main(void)
{
int ch,i;
int alpcnt[26]= {0}; /* アルファベットを0クリア */

printf("文字を入力しなさい(終了条件:CTRL+z)\n");
while((ch= getchar()) != EOF) {

if(isupper(ch) != 0){
alpcnt[ch-'A']++;
}
else if(islower(ch) != 0) {
alpcnt[ch-'a']++;
}
}

for(i=0; i<26; i++) {
printf("%c : %3d個入力\t\t",'a'+i, alpcnt[i]);
if(i%3== 2)
putchar('\n');
}
return(0);
}


初めまして、ともじです。

> それで、ここのホームページに載ってる第8章−2の演習を自分でも練習のために
> 同じプログラムを打ってみたのですが、結果がa,b,cが抜けてて、d: O個入力 
> から、zまでの表示しかしてくれません。
> どこが悪いのか教えていただけないでしょうか?

処理系は何をお使いでしょうか。Windows系 のC言語あるいはC++でしょうか。
私もBorland C++ Builder(BCB) で確認しましたが、coffeeさんのご指摘の結果に
なりました。BCBのヘルプでgetchar()関数を見ると、「注意:Win32s および
Win32 のアプリケーションでは,この関数を使用しないでください。」
とありますので、Win32 GUI の環境では上手く動作しないのだと思います。


ご返事、ありがとうございます.
私の使ってるのは、windows動作のVisualC++(6.0)です。
たぶん私の場合もwin32環境なのでうまく動作しなかったんですね。
理由がわかってよかったです.
ありがとうございました。


処理系によって、いろいろな問題がありますよね。
私も知らなかったので勉強になりました。

戻る


「初心者のためのポイント学習C言語」 Last modified:2001.7.25
Copyright(c) 2000-2002 TOMOJI All Rights Reserved