cout std üyesi değil


200

Ben mulitple dosyaları ve başlık dosyaları vb kullanarak pratik yapıyorum. Bu yüzden iki sayı alır ve sonra onları ekler bu proje var. Gayet basit.

İşte dosyalarım:

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

Hata io.cpp dosyasında görünüyor. Kesin hatalar:

resim açıklamasını buraya girin

Bunun neden olabileceği hakkında bir fikri olan var mı? Teşekkürler.

EDIT: Dün aynı miktarda dosya (2 .cpp ve 1.h) ile küçük bir proje yaptım ve diğer .cpp iostream üstbilgisi dahil etmedi ve hala derlenmiş ve iyi çalıştı.


3
Düzenlemenizi yeniden yapın: o projeyi farklı bir şekilde derlediniz. Burada olduğu gibi ikinci cpp dosyanıza iostream eklemek gerekir . Belki de .hdosyaya son kez dahil ettiniz .
Mat

Evet, şimdi harika çalışıyor, herkese hızlı yanıtlar için teşekkürler! :)
Paul Hannon

2
her zaman yerel dosyalarınızdan sonra sistem başlık dosyalarını ekleyin.
Vincent

Yanıtlar:


320

#include <iostream>başında da ekleyin io.cpp.


5
iostream dahil edilmelidir (doğrudan veya dolaylı olarak). Aksi halde derleyici std :: cout'u nerede bulacağını nasıl bilebilir?
AK

1
Ne dediğini anlıyorum. Teşekkürler. Yine de diğer projemi nasıl aldım. diğer .cpp de dahil olmadan çalışmak için? Altta OP'yi güncelledim.
Paul Hannon

1
Muhtemelen dolaylı olarak eklediniz. DAİMA gereklidir.
Sebastian Hoffmann

2
Ben de bir .h dosyasına dahil etmek gerekiyordu !! Teşekkürler
user391339 20:03

3
Ayrıca stdafx.h, daha önce değil sonra dahil edilmelidir
Alex

16

Ayrıca şunu da unutmayın:

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

ve tam tersi değil

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

1
Nereden "stdafx.h"geliyor? OP böyle bir başlık
kullanmıyor

Aynı hatayla karşılaştım ve yerlerini iyi olmaya çalıştım.
Ali Ahmadvand

1

Ben de benzer bir sorun vardı ve ben ekstra bir giriş eklemek zorunda çıktı cmake dosyaları dahil etmek .

Ayrıca zmq kütüphanesini kullandığım için bunu dahil edilen kütüphanelere de eklemek zorunda kaldım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.