cout không phải là thành viên của std


199

Tôi đang thực hành sử dụng các tệp mulitple và các tệp tiêu đề, v.v. Vì vậy, tôi có dự án này có hai số và sau đó thêm chúng. Khá đơn giản.

Đây là tập tin của tôi:

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

thêm

#ifndef ADD_H_INCLUDED
#define ADD_H_INCLUDED

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

#endif // #ifndef ADD_H_INCLUDED

Lỗi được hiển thị trong io.cpp. Các lỗi chính xác là:

nhập mô tả hình ảnh ở đây

Có ai có bất cứ ý tưởng tại sao điều này có thể xảy ra? Cảm ơn.

EDIT: Tôi đã thực hiện một dự án nhỏ vào ngày hôm qua với cùng số lượng tệp (2 .cpp và 1.h) và tôi đã không bao gồm tiêu đề iostream trong .cpp khác và nó vẫn được biên dịch và chạy tốt.


3
Chỉnh sửa của bạn: sau đó bạn biên dịch dự án đó khác nhau. Bao gồm iostream trong tệp cpp thứ hai của bạn là bắt buộc vì bạn có nó ở đây. Có lẽ bạn đã bao gồm trong .htập tin thời gian qua.
Mat

Vâng, giờ nó hoạt động rất tốt, cảm ơn vì đã phản hồi nhanh chóng mọi người! :)
Paul Hannon

2
luôn bao gồm các tệp tiêu đề hệ thống sau các tệp cục bộ của bạn.
Vincent

Câu trả lời:


317

thêm #include <iostream>khi bắt đầu io.cppquá.


5
iostream phải được đưa vào (trực tiếp hoặc gián tiếp). Nếu không, làm thế nào trình biên dịch sẽ biết nơi tìm std :: cout.
AK

1
Tôi hiểu bạn đang nói gì. Cảm ơn. Mặc dù làm thế nào tôi có được proj khác của tôi. để làm việc mà không bao gồm nó trong .cpp khác quá? Tôi đã cập nhật OP ở phía dưới.
Paul Hannon

1
Bạn có thể bao gồm nó gián tiếp. Đó là LUÔN LUÔN.
Sebastian Hoffmann

2
Tôi cũng cần phải đưa nó vào một tập tin .h !! Cảm ơn
dùng391339

3
ngoài ra nó phải được bao gồm sau stdafx.h, không phải trước đó
Alex

16

Cũng nên nhớ rằng nó phải là:

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

và không phải là cách khác

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

1
Nơi nào "stdafx.h"đến từ đâu? OP không sử dụng các tiêu đề như vậy
KABoissonneault

Tôi đã có cùng một lỗi và tôi đã cố gắng trao đổi vị trí của họ để được OK.
Ali Ahmadvand

1

Tôi đã có một vấn đề tương tự và hóa ra tôi phải thêm một mục bổ sung cmakeđể bao gồm các tập tin.

Vì tôi cũng đang sử dụng thư viện zmq nên tôi cũng phải thêm nó vào các thư viện đi kèm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.