無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
SRT

無題

#1

投稿記事 by SRT » 16年前

ファイルを読み込んでからフリーズするのか、ファイルを読み込む前からフリーズするのか気になったので
fp = FileRead_open(fname);//ファイル読み込み
if(fp == 0){
printfDx("read error\n");
return;
else
printfDx("read open OK\n");
}
elseを付け加えました。}の位置がおかしいですが、それとは関係の無い新しいエラーが出ました。

#include "dxlibp.h"
#include "GV.h"
#include <stdlib.h>

void load_story(){
int n,num,i,fp;
char fname[32]={"../dat/csv/storyH0.csv"};
int input[64];
char inputc[64];

fp = FileRead_open(fname);//ファイル読み込み
if(fp == 0){
printfDx("read error\n");
return;
else
printfDx("read open OK\n");
}




for(i=0;i<2;i++)
//最初の2行読み飛ばす
while(FileRead_getc(fp)!='\n');

n=0 , num=0;
while(1){
int fz =FileRead_open(fname);
for(i=0;i<64;i++){
inputc=input=FileRead_getc(fp);//1文字取得する
if(inputc=='/'){//スラッシュがあれば
while(FileRead_getc(fp)!='\n');//改行までループ
i=-1;//カウンタを最初に戻して
continue;
}
if(input==',' || input=='\n'){//カンマか改行なら
inputc='\0';//そこまでを文字列とし
break;
}
if(fz!=0){//ファイルの終わりなら
goto EXFILE;//終了
}
}
switch(num){

case 0: enemy_order[n].cnt =atoi(inputc);break;
case 1: enemy_order[n].pattern =atoi(inputc);break;
case 2: enemy_order[n].knd =atoi(inputc);break;
case 3: enemy_order[n].x =atof(inputc);break;
case 4: enemy_order[n].y =atof(inputc);break;
case 5: enemy_order[n].sp =atof(inputc);break;
case 6: enemy_order[n].bltime =atoi(inputc);break;
case 7: enemy_order[n].blknd =atoi(inputc);break;
case 8: enemy_order[n].col =atoi(inputc);break;
case 9: enemy_order[n].hp =atoi(inputc);break;
case 10:enemy_order[n].blknd2 =atoi(inputc);break;
case 11:enemy_order[n].wait =atoi(inputc);break;
case 12:enemy_order[n].item_n[0]=atoi(inputc);break;
case 13:enemy_order[n].item_n[1]=atoi(inputc);break;
case 14:enemy_order[n].item_n[2]=atoi(inputc);break;
case 15:enemy_order[n].item_n[3]=atoi(inputc);break;
case 16:enemy_order[n].item_n[4]=atoi(inputc);break;
case 17:enemy_order[n].item_n[5]=atoi(inputc);break;
}
num++;
if(num==18){
num=0;
n++;

}
}
EXFILE:
FileRead_close(fp);
}

エラー
load.cpp:26: error: expected `}' before 'else'
load.cpp:17: warning: unused variable 'n'
load.cpp:17: warning: unused variable 'num'
load.cpp:17: warning: unused variable 'i'
load.cpp:19: warning: unused variable 'input'
load.cpp:20: warning: unused variable 'inputc'
load.cpp: At global scope:
load.cpp:34: error: expected unqualified-id before 'for'
load.cpp:34: error: expected constructor, destructor, or type conversion before '<' token
load.cpp:34: error: expected constructor, destructor, or type conversion before '++' token
load.cpp:38: error: expected constructor, destructor, or type conversion before '=' token
load.cpp:39: error: expected unqualified-id before 'while'
警告でどの変数も使われていないとでます。もしかして今までもこのエラー・警告があったのでしょうか?(なぜかビルト結果には出なかっただけで)。
しかしload_story内で一回以上使われてますよね。どうしてなのか、回答おねがいします。

Mist

Re:無題

#2

投稿記事 by Mist » 16年前

括弧の位置がおかしいとコンパイラはそれ以降を正しく解析できないので、それ以降のワーニングや
エラーがなぜ出るのかを考えるのは無意味です。

Mist

Re:無題

#3

投稿記事 by Mist » 16年前

あと、ソースを掲載する場合は規約を守ってpreタグで字下げしてください。

box

Re:無題

#4

投稿記事 by box » 16年前

> elseを付け加えました。}の位置がおかしいですが、それとは関係の無い新しいエラーが出ました。

「それとは関係のない」という判断は誤りです。
当該のif文は、

	if(fp == 0){
		printfDx("read error\n");
	}
	return;
	else {
		printfDx("read open OK\n");
	}

と書いたのと同じであることに気づいてください。
「ifがないのにいきなりelseを書いている」というエラーです。

SRT

Re:無題

#5

投稿記事 by SRT » 16年前

そうですね。エラーは違うところにあるようです。回答ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る