cout bukan anggota dari std


200

Saya berlatih menggunakan file mulitple dan file header dll. Jadi saya punya proyek ini yang mengambil dua angka dan kemudian menambahkannya. Cukup mudah.

Ini file-file saya:

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

Kesalahan muncul di io.cpp. Kesalahan sebenarnya adalah:

masukkan deskripsi gambar di sini

Adakah yang tahu mengapa ini bisa terjadi? Terima kasih.

EDIT: Saya membuat proyek kecil kemarin dengan jumlah file yang sama (2 .cpp dan 1.h) dan saya tidak memasukkan header iostream di .cpp lainnya dan masih dikompilasi dan berjalan dengan baik.


3
Re edit Anda: maka Anda mengkompilasi proyek itu secara berbeda. Termasuk iostream dalam file cpp kedua Anda diperlukan seperti yang Anda miliki di sini. Mungkin Anda memiliki yang termasuk dalam .hfile terakhir kali.
Mat

Ya, itu bekerja dengan baik sekarang, terima kasih atas tanggapan cepat semua orang! :)
Paul Hannon

2
selalu sertakan file header sistem setelah file lokal Anda.
Vincent

Jawaban:


318

tambahkan #include <iostream>ke awal io.cppjuga.


5
iostream harus dimasukkan (langsung atau tidak langsung). Kalau tidak, bagaimana kompiler akan tahu di mana menemukan std :: cout.
AK

1
Saya mengerti apa yang Anda katakan. Terima kasih. Meskipun bagaimana saya mendapatkan proj saya yang lain. untuk bekerja tanpa menyertakannya di .cpp lainnya juga? Saya memperbarui OP di bagian bawah.
Paul Hannon

1
Anda mungkin memasukkannya secara tidak langsung. Itu SELALU diperlukan.
Sebastian Hoffmann

2
Saya perlu memasukkannya ke dalam file .h juga !! Terima kasih
user391339

3
juga harus dimasukkan setelah stdafx.h, bukan sebelum
Alex

16

Ingat juga bahwa itu harus:

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

dan bukan sebaliknya

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

1
Dari mana datangnya "stdafx.h"? OP tidak menggunakan tajuk seperti itu
KABoissonneault

Saya memiliki kesalahan yang sama dan saya mencoba bertukar tempat mereka menjadi OK.
Ali Ahmadvand

1

Saya memiliki masalah yang sama dan ternyata saya harus menambahkan entri tambahan cmakeuntuk memasukkan file.

Karena saya juga menggunakan perpustakaan zmq, saya harus menambahkan ini ke perpustakaan yang disertakan juga.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.