前提・実現したいこと
C言語の練習でタイピングゲームを作成しています。
回答し終えた後、正打率(正しく入力できた割合)を算出したのですがなかなかうまくいきません。
出題の文字はファイルから読み込む形です
正打率を求めるにあたって、
1.出題の文のすべての文字数(出題文字数)
2.間違いも含めたすべての入力数(すべての入力数)
を数え、正打率=出題文字数/すべての入力数
として答えをだそうとしています。
ソースコードの中に出題分がある場合なら文のすべての文字数をforで求められるのですが、
ファイルアクセスの場合はどのようにして算出すればよいでしょうか?
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <time.h>
int main(void)
{
FILE *fp;
char str[256];
int len,i,ch;
clock_t start,end;
double jikan;
fp = fopen("syutudai.txt","r"); if(fp == NULL){ printf("File Open Error\n"); return -1; } printf("以下の文字列をタイプしてください.\n"); start = clock( ); while(fgets(str,256,fp) != NULL){ len = strlen(str); str[len-1] = '\0'; len = len - 1; printf("%s\n",str); for(i = 0; i < len; i++){ while(1){ ch = getch( ); if(ch == str[i]){ putch(ch); break; } } } printf("\n"); } end = clock( ); jikan = (double)(end - start)/CLOCKS_PER_SEC; printf("\n 入力にかかった時間は%.1lf秒です.\n",jikan); printf("\n %dす.\n",len); return 0;
}
C言語
試したこと
while、forで試しましたがよくわかりませんでした。。
補足情報(FW/ツールのバージョンなど)
テキストファイルに複数行の文があります。
時間を図っており、すべて入力し終わると何秒かかったのか表示されます。