2012-11-03 10 views
18

मैं किताबों के माध्यम से सी ++ और COM सीखता हूं। आईडीई एमएस विजुअल स्टूडियो 2012 में मैंने नई खाली सी ++ परियोजना बनाई है, और इसमें कुछ मौजूदा फाइलें शामिल की हैं। मेरे सीपीपी फ़ाइल #include<iostream> पंक्ति है, लेकिन संपादक में मैं इस तरह के संदेशों मिला:#include <iostream> मौजूद है, लेकिन मुझे एक त्रुटि मिलती है: पहचानकर्ता "कोउट" अपरिभाषित है। क्यूं कर?

Error: identifier "cout" is undefined

अंत

Error: identifier "endl" is undefined

स्क्रीन:

enter image description here

यह क्यों होता है?

+1

कोशिश std :: अदालत और एसटीडी के लिए कोड – srbhkmr

+1

कोशिश कॉपी पेस्ट उस के बारे में पता नहीं है 'नाम स्थान का उपयोग कर एसटीडी, '। मीठे :) – sehe

+2

ताजा और खराब नहीं मन :: endl – jrok

उत्तर

26

आप std:: नाम स्थान निर्दिष्ट करने की आवश्यकता: वैकल्पिक रूप से

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

, आप एक using निर्देश का उपयोग कर सकते हैं:,

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

cout << .... << endl; 

मैं जोड़ने चाहिए कि आप हेडर में इन using निर्देशों से बचना चाहिए कोड के बाद से इनमें से प्रतीकों को वैश्विक नामस्थान में लाया जाएगा। यहाँ छोटे दायरे को निर्देशों का उपयोग कर, उदाहरण के

#include <iostream> 

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

के लिए प्रतिबंधित, using निर्देश केवल foo() के दायरे पर लागू होता है।

+0

धन्यवाद! मैं इसके विषय मे भूल गया। :) अब सब ठीक है। –

4

cout std नेमस्पेस में है, तो आप अपने कोड में std::cout का उपयोग करेंगे। और आप अपनी हेडर फ़ाइल में using namespace std; नहीं जोड़ना चाहते हैं, तो अपने कोड को std namespace के साथ मिश्रित करना बुरा है, विशेष रूप से इसे हेडर फ़ाइल में शामिल न करें।

+1

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

3

आप #include <iostream> के बाद शुरुआत में इस जोड़ सकते हैं:

using namespace std; 
संबंधित मुद्दे