2012-11-03 35 views
18

Tôi học C++ và COM qua các cuốn sách. Trong IDE MS Visual Studio 2012, tôi đã tạo một dự án C++ trống mới và thêm một số tệp hiện có vào nó. tập tin CPP của tôi chứa #include<iostream> liên tiếp, nhưng trong trình soạn thảo tôi có những thông điệp đó:#include <iostream> tồn tại, nhưng tôi gặp lỗi: số nhận dạng "cout" không xác định. Tại sao?

Error: identifier "cout" is undefined

cuối

Error: identifier "endl" is undefined

màn hình:

enter image description here

Tại sao nó xảy ra?

+1

thử std :: cout và std :: endl – srbhkmr

+1

thử copy dán mã – sehe

+2

tươi và tinh thần uncorrupted mà không biết về 'using namespace std; '. Sweet :) – jrok

Trả lời

26

Bạn cần phải xác định std:: namespace:

std::cout << .... << std::endl;; 

Ngoài ra, bạn có thể sử dụng một chỉ thị using:

using std::cout; 
using std::endl; 

cout << .... << endl; 

tôi nên thêm rằng bạn nên tránh những using chỉ thị trong tiêu đề, vì mã bao gồm những điều này cũng sẽ có các biểu tượng được đưa vào không gian tên chung. Hạn chế sử dụng các chỉ thị để phạm vi nhỏ, ví dụ

#include <iostream> 

inline void foo() 
{ 
    using std::cout; 
    using std::endl; 
    cout << "Hello world" << endl; 
} 

Ở đây, chỉ thị using chỉ áp dụng cho phạm vi foo().

+0

Cảm ơn bạn! Tôi đã quên điều đó. :) Bây giờ tất cả là OK. –

4

cout nằm trong không gian tên std, bạn phải sử dụng std::cout trong mã của mình. Và bạn sẽ không thêm using namespace std; vào tệp tiêu đề của mình, thật tệ khi kết hợp mã của bạn với không gian tên std, đặc biệt là không thêm nó vào tệp tiêu đề.

+1

http://en.wikipedia.org/wiki/Thou_Shalt_Not –

3

Bạn có thể thêm này ngay từ đầu sau khi #include <iostream>:

using namespace std; 
Các vấn đề liên quan