web-dev-qa-db-ja.com

エラーC2065: 'cout':宣言されていない識別子

私は私のプログラミングの割り当ての「ドライバー」の部分に取り組んでいますが、この不合理なエラーが発生し続けます:

エラーC2065: 'cout':宣言されていない識別子

私もstd :: coutを使用しようとしましたが、次のようなエラーが表示されます:IntelliSense:namespace "std" has no member "cout"iostreamを含むネームスペースstdを使用 +私はostreamを使用しようとしました

私はそれが標準的な初心者の質問であることを知っていますが、これは私を困惑させ、私は初心者です(つまり、私は以前にプログラミングしたことがあります...)

#include <iostream>
using namespace std;

int main () {
    cout << "hey" << endl;
 return 0;
}

私はVisual Studio 2010を使用し、Windows 7を実行しています。すべての.hファイルには「using namespace std」があり、iostreamとostreamが含まれています。

65
Wallter

Visual Studioでは、#include "stdafx.h"で、かつcppファイルの最初のインクルードである必要があります。たとえば:

これらはnot動作します。

#include <iostream>
using namespace std;
int main () {
    cout << "hey" << endl;
    return 0;
}




#include <iostream>
#include "stdafx.h"
using namespace std;
int main () {
    cout << "hey" << endl;
    return 0;
}

これで十分です。

#include "stdafx.h"
#include <iostream>
using namespace std;
int main () {
    cout << "hey" << endl;
    return 0;
}

ここに、stdafx.hヘッダーの機能に関する優れた答えがあります。

62
GeorgeChond

このコードを書くと、完璧に機能します。

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
 cout<<"Hello World!";
  return 0;
}
47

Visual Studio C++ 2010でも同じ問題が発生しました。修正は簡単です。 main()関数の上では、標準のインクルード行を以下のように置き換えますが、インクルードの前にポンド記号があります。

# include "stdafx.h"
# include <iostream>
using  namespace std;
10
mee

include "stdafx.h"は大丈夫です

ただし、using namespace stdを含めない限り、coutは使用できません。

名前空間stdを含めていない場合は、単純なcoutの代わりにstd::coutを記述する必要があります

8
user1899563

#include "stdafx.h"行を必要とするプロジェクトを開始した場合は、最初に配置してください。

4
Jerrey

あなたが使用する場合、私はそれを見てきました

#include <iostream.h>

その後、問題が発生します。

使用する場合

#include <iostream>  

(注意-.hなし)

その後、あなたが言及した問題は発生しません。

4
G B

C++コードで.cファイル拡張子を使用しているときに、同様のことが起こるのを見てきました。それ以外は、バグのあるインストールについて全員に同意する必要があります。 VSの以前のリリースでプロジェクトをコンパイルしようとすると機能しますか? VC++ Express 2008をお試しください。msdnで無料です。

3
goatlinks

私の場合、このような愚かな解決策:

// Example a
#include <iostream>    
#include "stdafx.h"

上記は、下の例bに似るように変更したとき、例aに従ってわれました...

// Example b
#include "stdafx.h"
#include <iostream>  

私のコードは魅力のようにコンパイルされました。それを試して、動作することが保証されています。

3
Sizons

以下のコードは、gccを使用して適切にコンパイルおよび実行されます。これをコピー/ペーストしてみて、動作するかどうかを確認してください。

#include <iostream>
using namespace std;

int bob (int a) { cout << "hey" << endl; return 0; };

int main () {
    int a = 1;
    bob(a);
    return 0;
}
3
Glen

含める唯一のファイルがiostreamであり、まだundefinedと表示されている場合、iostreamには本来の内容が含まれていない可能性があります。プロジェクトに偶然「iostream」という名前の空のファイルがある可能性はありますか?

3
Bob Lied

このプログラムを開始する前に、すべてのコードを取り除き、main内で単純なハローワールドを実行します。 iostreamのみを使用し、名前空間stdを使用します。問題を見つけるために少しずつ追加します。

cout << "hi" << endl;
2
JonH

VS2010、ベータ1およびベータ2(1つは作業用マシンに、もう1つは自宅にあります)を使用し、stdを問題なくたくさん使用しました。入力してみてください:

std::

Intellisenseが何かを提供するかどうかを確認します。通常のもの(abortabsacosなど)が提供される場合、coutを除くthatは非常に困惑しています。その場合は、必ずC++ヘッダーを調べてください。

それを超えて、通常の空のプロジェクト(Intellisenseが機能しないCLRではない)を実行していること、実際にbuildプロジェクトを少なくとも1回実行したことを確認するために追加します。 。コメントで述べたように、VS2010はinclude;を追加するとファイルを解析します。何かがパーサーに引っかかって、coutをすぐに「見つけられなかった」可能性があります。 (この場合、VSを再起動してみてください?)

2
Dan Tao

Ms c ++ 2010プロジェクトをゼロから開始するときに同じ問題が発生しました-msによって生成されたヘッダーファイルをすべて削除しましたが、使用しました:

#include "stdafx.h"
#include <iostream>
using namespace std;

int main() {
   cout << "hey" << endl;
   return 0;
}

stdafx.hを含める必要がありました。

2
oly

コードを取る

#include <iostream>
using namespace std;

.cppファイルからヘッダーファイルを作成し、これを.hファイルに配置します。それから加えて

#include "whatever your header file is named.h"

.cppコードの先頭。その後、再度実行します。

2
Jameyson

プロジェクトを作成したときに、「プリコンパイル済みヘッダーを使用する」を正しく設定していませんでした。 properties-> C/C++-> precompiled headersで変更します。

1
john ktejik

C++としてコンパイルしますか?ファイル名を確認してください(.cppで終わる必要があります)。プロジェクトの設定を確認してください。

プログラムには何も問題はありません。coutnamespace stdにあります。 VS 2010 Beta 2のインストールに欠陥がありますが、これは単なるインストールではないと思います。

VS 2010はまだC++に対応していないと思います。標準の「Hello、World」プログラムはベータ1では機能しませんでした。テストWin32コンソールアプリケーションを作成しようとしましたが、生成されたtest.cppファイルにはmain()関数がありませんでした。

私はVS 2010について本当に、本当に悪い気持ちを持っています。

1
David Thornley

それを試して、それは動作します。 Windows XP、Visual Studio 2010 Expressで確認しました。

#include "stdafx.h"
#include <iostream>
using namespace std;

void main( ) 
{
   int i = 0;
   cout << "Enter a number: ";
   cin >> i;
}
1

コードの先頭に次の行を挿入して、stdライブラリを含めます。

using namespace std;
1
cahit beyaz

Visual Studioでは、「stdafx.h」の下のすべてのヘッダーファイラーを使用します。

1
Nithin

通常、C:\ Program Files\Microsoft Visual Studio 8\VC\includeフォルダーに保存されます。最初にまだ存在するかどうかを確認します。次に、[ツール+オプション]、[プロジェクトとソリューション]、[VC++ディレクトリ]を選択し、[ディレクトリを表示]コンボボックスで[ファイルを含める]を選択し、$(VCInstallDir)includeがリストの先頭にあることを再確認します。

0
Manohar

私は同じ問題を抱えていたのでここに来ましたが、#include "stdafx.h"を実行したとき、そのファイルが見つからなかったと言いました。
私にとってのトリックは:#include <algorithm>
Microsoft Visual Studio 2008を使用しています。
これらは、その時点で使用できるものです。 「カウント」: リンク

0
Tenzin

2010年にインストールしたばかりで、ほぼ同じプログラムを機能させようとした後、このエラーに遭遇しました。

以前、UnixスタイルのボックスでVanilla Cコーディングを行ったことがありますが、これを少し自分で試してみることにしました。

私が試した最初のプログラムは:

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Hello World!";
    return 0;
}

ここで注意すべき大きなことは、Cコーディングを行ったことがある場合は、

int _tmain(int argc, _TCHAR* argv[])

変に見える。そのはず:

int main( int argc, char ** argv )

私の場合、プログラムを次のように変更しました。

#include <iostream>
using namespace std;

int main()
{
     cout << "Hello world from  VS 2010!\n";
     return 0;
}

そして、それはうまくいきました。

注:Ctrlキーを押しながらF5キーを押すと、コンソールウィンドウが固定され、結果を確認できます。

0
avgvstvs

printfを使用してください!

printfstdio.hヘッダーファイルにstdafx.hを含めます。

0
Ngoo Nam