fgetsとsscanfが使いこなせません
Posted: 2010年1月01日(金) 17:36
いつもお世話になりっぱなしですいませんシノニムです
現在コンソールアプリでこのようなプログラムを作ってみたんですが
OSはWindowsXP
言語はC++です
どなたかアドバイスお願いします
現在コンソールアプリでこのようなプログラムを作ってみたんですが
#include <sstream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <d3d9.h>
#include <d3dx9.h>
// グローバル変数の定義
FILE *fp; // 譜面読み込み用のファイルポインタ
int MaxCombo = -1; // コンボ数
int LastCnt = 0; // 最終カウント
// モード用
enum
{
ON,
OFF
};
// 読み込みの際の構造体
typedef struct CHECK_NOTE
{
char text[2];
char code[7];
int s1;
int s2;
int s3;
int s4;
int s5;
int s6;
// コンストラクタ
CHECK_NOTE(){
strcpy(text, "NULL");
strcpy(code, "NULL");
s1 = OFF;
s2 = OFF;
s3 = OFF;
s4 = OFF;
s5 = OFF;
s6 = OFF;
}
}CHECK_NOTE;
void main(void)
{
fp = fopen("NORMAL.txt","r");
int m = 0;
CHECK_NOTE Checker;
while(MaxCombo < 0)
{
// 構造体変数郡の一部初期化
CHECK_NOTE();
// ファイルから1行分読み込む
fgets(Checker.text, 30, fp);
// 構造体の各変数に数値を出力
sscanf(Checker.text, "%s:%d:%d,%d,%d,%d,%d",
Checker.code,
&Checker.s1,
&Checker.s2,
&Checker.s3,
&Checker.s4,
&Checker.s5,
&Checker.s6);
// 終了のカウントと最大コンボ数の出力
if( (strcmp(Checker.code, "FINISH") == 0) ) LastCnt = Checker.s1;
else if( (strcmp(Checker.code, "COMBO" ) == 0) ) MaxCombo = Checker.s1;
// コードがNULLなら
else if( (strcmp(Checker.code, "NULL" ) == 0) ) ++ m;
printf("%s\n", Checker.text);
}
printf("%d", m);
fclose(fp);
};
うまく一行ずつ表示してくれませんOSはWindowsXP
言語はC++です
どなたかアドバイスお願いします