• ベストアンサー

C/C++のfor文?エラー

int k2; int es1=0; es1出力する式。 int esti=0; for( k2=0 ; k2<es1 ;k2++){ rep1esti[esti]=rep1estiM[k2], rep2esti[esti]=rep2estiM[k2];  repky1esti[esti]=repky1esti[k2], repky2esti[esti]=repky2estiM[k2], esti=esti+1; } をコンパイルしたとき次のようにエラーが出てきます。 どうすれば、エラーを消せるのでしょうか? よろしくお願いします。 c:\documents and settings\hiro\デスクトップ\gaibupara\opencvwithdirectshow_v2.0\ransacmotion.cpp(354) : error C2059: 構文エラー : 'for' c:\documents and settings\hiro\デスクトップ\gaibupara\opencvwithdirectshow_v2.0\ransacmotion.cpp(354) : error C2143: 構文エラー : ')' が ';' の前にありません。 c:\documents and settings\hiro\デスクトップ\gaibupara\opencvwithdirectshow_v2.0\ransacmotion.cpp(354) : error C2143: 構文エラー : ';' が '<' の前にありません。 c:\documents and settings\hiro\デスクトップ\gaibupara\opencvwithdirectshow_v2.0\ransacmotion.cpp(354) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません c:\documents and settings\hiro\デスクトップ\gaibupara\opencvwithdirectshow_v2.0\ransacmotion.cpp(354) : error C2143: 構文エラー : ';' が '++' の前にありません。 c:\documents and settings\hiro\デスクトップ\gaibupara\opencvwithdirectshow_v2.0\ransacmotion.cpp(354) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません c:\documents and settings\hiro\デスクトップ\gaibupara\opencvwithdirectshow_v2.0\ransacmotion.cpp(354) : error C2086: 'int k2' : 再定義されました。 c:\documents and settings\hiro\デスクトップ\gaibupara\opencvwithdirectshow_v2.0\ransacmotion.cpp(354) : 'k2' の宣言を確認してください。 c:\documents and settings\hiro\デスクトップ\gaibupara\opencvwithdirectshow_v2.0\ransacmotion.cpp(354) : error C2059: 構文エラー : ')' c:\documents and settings\hiro\デスクトップ\gaibupara\opencvwithdirectshow_v2.0\ransacmotion.cpp(354) : error C2143: 構文エラー : ';' が '{' の前にありません。 c:\documents and settings\hiro\デスクトップ\gaibupara\opencvwithdirectshow_v2.0\ransacmotion.cpp(354) : error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.4

> 別の方法でやってみたところ、エラーが出てこなくなったのですが、 > > repky1esti[esti]=repky1esti[k2] > というのがおかしいのでしょうか? ソースコードを修正してコンパイルし直した結果、 エラーが出なくなったのであれば、「文法上は」正しいです。 実行結果が正しいかどうかは別です。

spitzer3
質問者

お礼

ご回答ありがとうございました。

その他の回答 (3)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.3

> こんな構文は無い。 それはちょっと…。 複数の代入文をカンマでつないでいるだけです。 a = b, c = d, e = f; って、ありますでしょ?

  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.2

rep1estiM[k2], rep2esti[esti] repky1esti[k2], repky2esti[esti] repky2estiM[k2], esti このカンマは何? こんな構文は無い。

spitzer3
質問者

お礼

ご回答ありがとうございました。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

> es1出力する式。 省略せずに、コードをそのまま見せてください。 > ransacmotion.cpp(354) : error C2059 ソースファイルの354行目はどの行ですか?

spitzer3
質問者

補足

 別の方法でやってみたところ、エラーが出てこなくなったのですが、  repky1esti[esti]=repky1esti[k2]  というのがおかしいのでしょうか?  後、ソースファイルを書き換えてしまって、354行目が分からなくなってしまいました。すみません。

関連するQ&A