web-dev-qa-db-fra.com

cout n'est pas un membre de std

Je m'exerce à utiliser des fichiers multiples et des fichiers d'en-tête, etc. J'ai donc ce projet qui prend deux nombres et les ajoute ensuite. Assez simple.

Voici mes fichiers:

main.cpp

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

int main()
{
    int x = readNumber();
    int y = readNumber();

    writeAnswer(x + y);

    return(0);
}

io.cpp

int readNumber()
{
    int x;

    std::cout << "Number: ";
    std::cin >> x;

    return x;
}

void writeAnswer(int x)
{
    std::cout << "Answer: ";
    std::cout << x;
}

add.h

#ifndef ADD_H_INCLUDED
#define ADD_H_INCLUDED

int readNumber();
void writeAnswer(int x);

#endif // #ifndef ADD_H_INCLUDED

L'erreur apparaît dans io.cpp. Les erreurs exactes sont:

enter image description here

Quelqu'un at-il une idée de la raison pour laquelle cela peut se produire? Merci.

EDIT: J'ai fait un petit projet hier avec le même nombre de fichiers (2 .cpp et 1.h) et je n'ai pas inclus l'en-tête iostream dans l'autre .cpp et il est toujours compilé et a bien fonctionné

169
Paul Hannon

ajoutez #include <iostream> au début de io.cpp aussi.

270
unkulunkulu

Rappelez-vous également que cela doit être:

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

et non l'inverse

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

J'ai eu un problème similaire et il s'est avéré que je devais ajouter une entrée supplémentaire dans cmake pour inclure les fichiers.

Comme j'utilisais également la bibliothèque zmq, je devais également l'ajouter aux bibliothèques incluses.

1
Marco Rubio