• 締切済み

テキストファイルに出力した結果の加算

 キーボードから'a'を入力した時点で'1'をテキストに書き込み、何も入力しない時は'0'を書き込むプログラムを作りました。  このプログラムを改良して、実行するたびに前のテキストの内容に実行結果を足していくようなプログラムを作りたいのですがどのように改良していけばよいでしょうか?  例えば、1回目に入力した時点と2回目に入力した時点がかぶっていたらテキストファイルにはその時点の数値が'2'となるようにしていきたいのです。  プログラムは以下です。 ------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <cxcore.h> #include <highgui.h> #include "cv.h" #include "image.h" #include "avi_w.h" //IplImage IplImage* src; IplImage* gray; IplImage* file; int main(void) { char wname[] = "input"; CvCapture* capture; IplImage *frame=NULL; char* captureWindow = "Capture"; int key; int count; int score[10000][1]; int i; int j=1; int k=0; char filename[256]; FILE *fp,*fq; time_t timer; struct tm *date; char str[1000]; //AVIファイルの読み込み・出力 capture = cvCaptureFromFile("video.avi"); cvNamedWindow(wname,1); frame = cvQueryFrame(capture); //キャプチャサイズを知るために画像取得 //変数群の定義 CvVideoWriter* VideoWriter = NULL; char* file = "movie.avi"; // 出力ファイル名 double fps = 30.0; // ビデオのフレームレート //ビデオファイル書き込みの設定 VideoWriter = cvCreateVideoWriter(file,-1,fps,cvSize(frame->width,frame->height),1); //画像表示ウィンドウの出現位置指定 cvMoveWindow(wname, 300, 300); //ファイルオープン fp = fopen("frame.txt","w"); fprintf(fp,"フレーム\n"); for(count=1;;count++){ frame = cvQueryFrame(capture); cvShowImage(wname,frame); key = cvWaitKey(30); if(frame == NULL) break; /*キー入力*/ else if(key == 'q') break; else if(key == 'a'){ //ビデオファイル書き込み cvWriteFrame(VideoWriter,frame); key = cvWaitKey(1); printf("aが%dフレーム目で入力されました\n",count); /*現在時間の取得*/ timer = time(NULL);/* 経過時間を取得 */ date = localtime(&timer);/* 経過時間を時間を表す構造体 date に変換 */ strftime(str, 255, "%Y, %B, %d, %A %p%I:%M:%S", date); printf("%s\n\n", str); //テキストファイルに出力 fprintf(fp,"[%03d] ",count); fprintf(fp," 1\n"); } else{ fprintf(fp,"[%03d] ",count); fprintf(fp," 0\n"); } } cvReleaseVideoWriter(&VideoWriter); cvReleaseCapture( &capture ); cvDestroyAllWindows(); fclose(fp); return 0; } ----------------------------------------------

みんなの回答

回答No.1

私が以前、貴方の同じような質問に回答をしていると思いますが。。。

参考URL:
http://oshiete1.goo.ne.jp/qa5417313.html
illckbc
質問者

お礼

 以前はありがとうございました。  前のプログラムでは実行のたびに結果の値が上書きされるので、 今回のプログラムでは実行を繰り返すたびにその結果を前に行った結果に加算していくように改良したいと考えています。  前の結果を配列に格納、保持し、次に実行する時にその結果を使い、加算を行うというのはできるのでしょうか?  どういった方法をとれば実装できるか教えていただけるとありがたいです。