c++ - visual - El#include<iostream> existe, pero me aparece un error: el identificador "cout" no está definido. ¿Por qué?
paquetes redistribuibles de visual c++ para visual studio 2013 (3)
Aprendo C ++ y COM a través de los libros. En el IDE MS Visual Studio 2012, he creado un nuevo proyecto de C ++ vacío y le he agregado algunos archivos existentes. Mi archivo CPP contiene la fila #include<iostream>
, pero en el editor recibí estos mensajes:
Error: el identificador "cout" no está definido
fin
Error: el identificador "endl" no está definido
Pantalla:
¿Por qué sucede?
Necesitas especificar el std::
namespace:
std::cout << .... << std::endl;;
Alternativamente, puedes usar una directiva using
:
using std::cout;
using std::endl;
cout << .... << endl;
Debo agregar que debe evitarlos using
directivas en los encabezados, ya que el código que incluye estos también tendrá los símbolos en el espacio de nombres global. Restringir el uso de directivas a ámbitos pequeños, por ejemplo
#include <iostream>
inline void foo()
{
using std::cout;
using std::endl;
cout << "Hello world" << endl;
}
Aquí, la directiva using
solo se aplica al alcance de foo()
.
Puedes agregar esto al principio después de #include <iostream>
:
using namespace std;
cout
está en el espacio de nombres estándar, deberá usar std::cout
en su código. Y no debes agregar using namespace std;
en su archivo de encabezado, es malo mezclar su código con el espacio de nombres estándar, especialmente no lo agregue en el archivo de encabezado.