OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

VC++、超初心者です。

  • 暇なときにでも
  • 質問No.239512
  • 閲覧数750
  • ありがとう数2
  • 気になる数0
  • 回答数8
  • コメント数0

お礼率 76% (1582/2056)

intで宣言した変数と変数の足し算を行い、intの変数に代入すると、
シンタックスエラーを起こしてしまいます。

例)

int A;
int B;
int C;

C = A + B

C2061: 構文エラー : 識別子 'C' がシンタックスエラーを起こしました。
通報する
  • 回答数8
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.8
レベル12

ベストアンサー率 39% (356/898)

いきなりthenというのも問題ですが、

if構文を使うなら条件式をカッコで囲まないとダメです。

if(c>d)
a+b;

という具合に書くか、
あるいはもっと明示的に

if(c>d){
a+b;
}

と書きます。{}はなくても良いですが、条件式は区切らないとシンタックスエラーになります。
お礼コメント
wan-chan

お礼率 76% (1582/2056)

きゃー、ありがとうございます!
できました!
感謝感激です。
()をつけないとダメなんですね。
ほんと、初歩的なことですみません。
投稿日時 - 2002-03-22 16:47:50
-PR-
-PR-

その他の回答 (全7件)

  • 回答No.2
レベル13

ベストアンサー率 24% (357/1463)

変数名を変えてみて下さい。 VC++がどうなのかは知りませんが、コンパイラによっては、 例えばCとC++とを区別するためにCという定数が予め定義 されていたりするような場合があります。 ...続きを読む
変数名を変えてみて下さい。
VC++がどうなのかは知りませんが、コンパイラによっては、
例えばCとC++とを区別するためにCという定数が予め定義
されていたりするような場合があります。
補足コメント
wan-chan

お礼率 76% (1582/2056)

実際には、Cという変数名は使っていません。
もしかしたら、別のところでエラーが出ているのかもしれません。
行番号が出ているのですが、
コメント行は省いて考えるのですか?
もう1度調べて、また補足します。
投稿日時 - 2002-03-22 15:15:59
  • 回答No.1

C = A + B を C = A + B ; として再度実行してみてください。 それでもだめなら int A; int B; int C; A = 1; B = 1; C = A + B ; としてみてください。 それでもまだエラーが出ますか? ...続きを読む
C = A + B を C = A + B ;
として再度実行してみてください。
それでもだめなら
int A;
int B;
int C;
A = 1;
B = 1;
C = A + B ;
としてみてください。
それでもまだエラーが出ますか?
補足コメント
wan-chan

お礼率 76% (1582/2056)

それでもエラーが出ます。
投稿日時 - 2002-03-22 14:16:54
  • 回答No.3
レベル7

ベストアンサー率 18% (3/16)

この質問では C=A+B となっていますがデリミタ-(;)がついていませんよ。 C=A+B; これはプログラムでは大丈夫ですか? ...続きを読む
この質問では
C=A+B
となっていますがデリミタ-(;)がついていませんよ。
C=A+B;
これはプログラムでは大丈夫ですか?
補足コメント
wan-chan

お礼率 76% (1582/2056)

ごめんなさい。
書くのを間違えましたが、「;」は入っています。
投稿日時 - 2002-03-22 15:15:32
  • 回答No.4
レベル10

ベストアンサー率 61% (70/113)

1.識別子名に全角文字を使用していませんか? 2.その前の行に;や}が抜けていませんか? この行を削除してみて、まだ同じエラーが出るようなら2のケースです。 1のケースの場合はエラーが消えるか、「Cが初期化されていません」というエラーが出ます。
1.識別子名に全角文字を使用していませんか?
2.その前の行に;や}が抜けていませんか?

この行を削除してみて、まだ同じエラーが出るようなら2のケースです。
1のケースの場合はエラーが消えるか、「Cが初期化されていません」というエラーが出ます。
  • 回答No.6
レベル12

ベストアンサー率 39% (356/898)

エラー行があるならCのビューにフォーカスを置いて<編集>-<ジャンプ>でそれを入力すると該当行番号にカーソルがいきます。 VCのヘルプ検索では以下のようになっています。 コンパイラ エラー C2061 構文エラー : 識別子 'identifier' が構文エラーを起こしました。 予期しない位置で identifier を見つけました。このエラーは初期化子をかっこで ...続きを読む
エラー行があるならCのビューにフォーカスを置いて<編集>-<ジャンプ>でそれを入力すると該当行番号にカーソルがいきます。

VCのヘルプ検索では以下のようになっています。

コンパイラ エラー C2061
構文エラー : 識別子 'identifier' が構文エラーを起こしました。

予期しない位置で identifier を見つけました。このエラーは初期化子をかっこで囲んだときに発生します。このエラーをなくすには、宣言子をかっこで囲むか、宣言子を typedef にしてください。
--------------------

本当にそういった単純なプログラムになっているならこういった類のエラーは出ないはずですが。ちょっとどうやったらそうなるのか再現できませんでした。

一度他の部分は全て/* */でコメントアウトして問題だと思われる部分だけでコンパイルしてみては?単純化して問題部分に絞ることで見やすくなるはずです。
補足コメント
wan-chan

お礼率 76% (1582/2056)

ジャンプでエラー行に移動することができました。
ありがとうございます。

全体的に補足ですが、

C = A + B;

の行でエラーになっているのではありませんでした。
ごめんなさい。
次の行で、

if c > d then;
と書いているのですが、この文でエラーになっています。
dはint型です。
投稿日時 - 2002-03-22 16:14:01
  • 回答No.5
レベル9

ベストアンサー率 50% (5/10)

#include <stdio.h> main() { int A; int B; int C; A = 1; B = 1; C = A + B; } 同様に上記のようなプログラムを作成しました。 特に問題はなく、2という結果が返ります。 エラーというのはコンパイル時に発生するのでしょうか? 上記のようなシンプルなプログラムでおっしゃるよ ...続きを読む
#include <stdio.h>

main()
{
int A;
int B;
int C;

A = 1;
B = 1;

C = A + B;
}

同様に上記のようなプログラムを作成しました。
特に問題はなく、2という結果が返ります。

エラーというのはコンパイル時に発生するのでしょうか?

上記のようなシンプルなプログラムでおっしゃるようなエラーを発生させることが
できませんでした。

上記以外の機能があるようでしたら、そのへんもみてみたらいかがでしょうか?
すみません、回答になってなくて・・・
  • 回答No.7
レベル10

ベストアンサー率 61% (70/113)

> if c > d then; VB等のプログラムをされていた方なのでしょうか? Cでは、if c>d then ... endifではなく、 if (c > d) { ... } と記述します。もちろんスペースの空け方はお好みで。 ...続きを読む
> if c > d then;
VB等のプログラムをされていた方なのでしょうか?
Cでは、if c>d then ... endifではなく、
if (c > d) {
...
}
と記述します。もちろんスペースの空け方はお好みで。
お礼コメント
wan-chan

お礼率 76% (1582/2056)

はい、ずっとVBをやっていました。
thenはないんですね。
お恥ずかしいです。
ようやくできました。
あとは、他で質問した、関数から関数が呼ばればOKです。
ありがとうございました!!
投稿日時 - 2002-03-22 16:48:44
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ