c++ namespaces visual-studio-2010-beta-2 std

c++ - error C2065: ''cout'': identificador no declarado



namespaces visual-studio-2010-beta-2 (24)

Estoy trabajando en la parte del ''controlador'' de mi asignación de programación y sigo recibiendo este absurdo error:

error C2065: ''cout'': identificador no declarado

Incluso he intentado usar std :: cout, pero aparece otro error que dice: IntelliSense: namespace "std" no tiene ningún miembro "cout" cuando he declarado usando namespace std, incluido iostream + i incluso intenté usar ostream

Sé que es una pregunta novato estándar, pero esto me ha dejado perplejo y soy un novato (es decir: he programado antes ...)

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

Estoy usando Visual Studio 2010 y ejecutando Windows 7. Todos los archivos .h tienen "using namespace std" e incluyen iostream y ostream.


¿Estás seguro de que compila como C ++? Verifique su nombre de archivo (debe terminar en .cpp ). Verifique la configuración de su proyecto.

Simplemente no hay nada malo con su programa, y cout está en el namespace std de namespace std . Su instalación de VS 2010 Beta 2 es defectuosa, y no creo que sea solo su instalación.

No creo que VS 2010 esté listo para C ++ todavía. El programa estándar "Hello, World" no funcionó en Beta 1. Solo intenté crear una aplicación de prueba Win32 console, y el archivo test.cpp generado no tenía una función main() .

Tengo un sentimiento muy, muy malo sobre VS 2010.


Cuando creó su proyecto, no estableció ''usar encabezados precompilados'' correctamente. Cámbielo en propiedades-> C / C ++ -> encabezados precompilados.


El include "stdafx.h" está bien

Pero no puede usar cout menos que haya incluido el using namespace std

Si no ha incluido el espacio de nombres estándar, debe escribir std::cout lugar de simple cout


El siguiente código se compila y funciona correctamente para mí usando gcc. Intenta copiar / pegar esto y ver si funciona.

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


En Visual Studio debe #include "stdafx.h" y ser el primero incluido en el archivo cpp. Por ejemplo:

Esto no funcionará

#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; }

Esto lo hara.

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


En Visual Studio use todo el archivador de encabezado debajo de "stdafx.h".


Era el compilador. Ahora uso Eclipse Galileo y el programa funciona como una maravilla.


He visto cosas similares suceder cuando estaba usando la extensión de archivo .c con código C ++. Aparte de eso, tendría que estar de acuerdo con todos acerca de una instalación defectuosa. ¿Funciona si intenta compilar el proyecto con un lanzamiento anterior de VS? Pruebe VC ++ Express 2008. Es gratis en msdn.


He visto que si usas

#include <iostream.h>

entonces obtendrás el problema.

Si utiliza

#include <iostream>

(aviso - sin el .h)

entonces no obtendrás el problema que mencionaste.


Incluya la biblioteca estándar insertando la siguiente línea en la parte superior de su código:

using namespace std;


Me encontré con este error después de haber instalado vs 2010 y simplemente tratando de hacer funcionar un programa casi idéntico.

Ya había hecho la codificación vainilla C en cajas de estilo Unix, y decidí jugar con esto un poco también.

El primer programa que probé fue:

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

Lo más importante que hay que notar aquí ... si alguna vez has hecho alguna codificación C,

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

Se ve raro. debería ser:

int main( int argc, char ** argv )

En mi caso, acabo de cambiar el programa a:

#include <iostream> using namespace std; int main() { cout << "Hello world from VS 2010!/n"; return 0; }

Y funcionó bien.

Nota: Use CTRL + F5 para que la ventana de la consola se quede para poder ver los resultados.


Pruébalo, funcionará. Lo comprobé en 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; }


Si comenzó un proyecto que requiere la línea #include "stdafx.h" , #include "stdafx.h" primero.


Si el único archivo que incluye es iostream y todavía dice indefinido, entonces tal vez iostream no contenga lo que se supone que debe. ¿Es posible que tenga un archivo vacío casualmente llamado "iostream" en su proyecto?


Solo use printf !

Incluya stdio.h en su archivo de encabezado stdafx.h para printf .


Tengo VS2010, Beta 1 y Beta 2 (uno en mi máquina de trabajo y otro en casa), y he usado mucho sin problemas. Prueba a escribir:

std::

Y mira si Intellisense te da algo. Si te da las cosas habituales ( abort , abs , acos , etc.), excepto para cout , bueno, eso es todo un rompecabezas. Definitivamente mira en tus encabezados de C ++ en ese caso.

Más allá de eso, solo agregaría para asegurarme de que está ejecutando un proyecto regular y vacío (no CLR, donde Intellisense está paralizado), y que en realidad ha intentado construir el proyecto al menos una vez. Como mencioné en un comentario, VS2010 analiza los archivos una vez que ha agregado una include ; podría ser que algo atascó el analizador sintáctico y no lo "encontró" de inmediato. (En cuyo caso, intente reiniciar VS tal vez?)


Toma el código

#include <iostream> using namespace std;

de su archivo .cpp, cree un archivo de encabezado y póngalo en el archivo .h. Luego añade

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

en la parte superior de tu código .cpp. Luego ejecútalo de nuevo.


Tuve el mismo problema al iniciar un proyecto de ms c ++ 2010 desde cero: eliminé todos los archivos de encabezado generados por ms y que usé:

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

Tuve que incluir stdafx.h ya que causó un error al no tenerlo.


Tuve el mismo problema en Visual Studio C ++ 2010. Es fácil de arreglar. Por encima de la función main (), simplemente reemplace las líneas de inclusión estándar con esta a continuación, pero con el símbolo de libra en frente de las inclusiones.

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


Una solución tan tonta en mi caso:

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

Lo anterior se pidió como en el ejemplo a, cuando lo cambié para parecerse al ejemplo b a continuación ...

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

Mi código compilado como un amuleto. Pruébalo, garantizado que funciona.


Vine aquí porque tenía el mismo problema, pero cuando lo hice #include "stdafx.h" decía que no encontró ese archivo.
¿Cuál fue el truco para mí? #include <algorithm> .
Yo uso Microsoft Visual Studio 2008.
Estas son las cosas que puedes usar entonces, incl. ''contar'': Link


antes de comenzar este programa, deshágase de todo el código y haga un simple hola mundo dentro de main. Solo incluya iostream y use namespace std ;. Poco a poco aumente para encontrar su problema.

cout << "hi" << endl;


escribe este código, funciona perfectamente ...

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


normalmente se almacena en la carpeta C: / Archivos de programa / Microsoft Visual Studio 8 / VC / include. Primero comprueba si todavía está allí. A continuación, elija Herramientas + Opciones, Proyectos y soluciones, Directorios de VC ++, elija "Incluir archivos" en el cuadro combinado "Mostrar directorios para" y vuelva a verificar que $ (DirInstalVCIn) incluya está en la parte superior de la lista.