※ ChatGPTを利用し、要約された質問です(原文:ファイル)
ファイルの文字カウントプログラムでの正しい出力方法は?
このQ&Aのポイント
ファイルAからZまでの文字が何回出力されるか数えるプログラムで、うまく出力されない場合、どこを変更すればいいでしょうか。
C言語のプログラムで、ファイルから文字を読み込んでカウントする方法を教えてください。
ファイルを開いて、文字を読み込んで大文字に変換し、アルファベットの出現回数をカウントするプログラムの正しい実装方法は?
AからZまでの文字が何回出力されるか数えるプログラムなのですが、うまく出力されません。
どこを変えればよろしいでしょうか。
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int count[26];
int main(void)
{
char str[100] = "xyzYZZ\n";
FILE *fp;
char *p;
int i;
char ch;
if((fp = fopen("myfile","w")) == NULL){
printf("ファイルを開くことが出来ません");
exit(1);
}
p = str;
while(*p){
if(fputc (*p,fp) == EOF){
printf("ファイル書き込みエラー");
exit(1);
}
p++;
}
fclose(fp);
if((fp = fopen ("myfile","r")) == NULL){
printf("ファイルを開くことが出来ません");
exit(1);
}
while((ch == fgetc(fp)) != EOF){
ch = toupper(ch);
if( ch >= 'A' && ch <='Z' )
count[ch - 'A']++ ;
}
for( i=0 ; i<26 ; i++)
printf("%c は %d 回出現\n",i + 'A', count[i]);
fclose(fp);
return 0;
}
お礼
できました!ありがとうございます。