Search

0.7 — C++ में आने वालीं कुछ सामान्य परेशानियाँ

इस section में, हम कुछ सामान्य दिक्कतों के बारे में चर्चा करेंगे, जो अक्सर नए programmers को परेशान करती हैं । इसका मतलब ये नहीं की हम compilation या exexution में आने वाली सारी परेशानियों को यहाँ हल करेंगे, बल्कि हम केवल कुछ basic problems को solve करने के तरीके सीखेंगे । यदि आपको लगता है की यहाँ कुछ और problems के बारे में भी बताया जाना चाहिए, तो आप comment section में हमे suggest कर सकते हो ।

Problem 1: जब IDE से कोई program execute करते हो, तो console window पलक झपकते ही गायब हो जाता है ।

Answer 1: कुछ compilers (जैसे Bloodshed का Dev C++) program execution पूरा होने के बाद console स्क्रीन को अपने आप pause नहीं करता । यदि आपके compiler के साथ भी यही समस्या है, तो नीचे दिए गए दो steps आपकी परेशानी दूर कर सकते है:

सबसे पहले, आपके program में सबसे ऊपर ये line add करें:

अब, main() function के अंत में ये code जोड़ें (return statement के ठीक पहले):

ये program को आपके द्वारा कोई input दिए जाने तक रोके रखेगा, जिससे आपको अपने program का output देखने का समय मिल जायेगा ।

दूसरा उपाय आम तौर पर suggest किया जाने वाला system("pause") है लेकिन ये केवल कुछ operating system के लिए ही सही साबित होगा, और इसलिए इनके इस्तेमाल से बचना ही सही है ।

Note: Visual Studio किसी console application के अंत में नहीं रुकेगा यदि इसे debugging (Debug Menu->Start Debugging) के साथ run किया जा रहा है । यदि आप इसे pause करना चाहते हैं, आप ऊपर दिए code solution का इस्तेमाल कर सकते हैं, या फिर आपके program को debugging के बिना (Debug Menu->Start Without Debugging) चला सकते हैं ।

Problem 2: जब Microsoft Visual C++ के साथ compile कर रहे हो, आपको ये error message मिलता है: “c:vcprojectstest.cpp(263) :fatal error C1010: unexpected end of file while looking for precompiled header directive”

Answer 2: ये तब होता है, जब आपका Microsoft Visual C++ compiler precompiled headers इस्तेमाल करने के लिए set किया गया हो लेकिन आपकी एक (या अधिक) code file (या फाइलें) इसे include नहीं करतीं:

ध्यान दें की programs जिसमे एक से ज्यादा files हों, उसके हर एक C++ code file को इस line की ज़रूरत होगी:

वैकल्पिक रूप से, आप precompiled headers को off कर सकते हैं ।

Problem 3: जब आप cin, cout, या endl का इस्तेमाल करना चाहते हो, compiler cin, cout, या endl को एक “undeclared identifier” बतलाता है

Answer 3:सबसे पहले, आपको आपके file में सबसे ऊपर ये line जोड़ना होगा:

दूसरा, ध्यान रहे की cin, cout, या endl के आगे “std::” लगाया गया है । उदहारण के लिए:

Problem 4: जब किसी printed line को endl की मदद से ख़त्म करना चाहते हो, compiler कुछ इस तरह का error देता है “undeclared identifier”

Answer 4: सबसे पहले ये ध्यान देने की ज़रूरत है की कहीं आपने letter l (alphabetic small l) को number 1 से तो नहीं बदल दिया । endl में केवल english alphabetical letters होने चाहियें । मै कोई ऐसा font चुनने की सलाह देता हूँ जिसमे letter l (small L) और number 1 की सही-सही पहचान हो सके । साथ ही जिसमे capital o और number 0 के बीच पहचान करने में कोई दिक्कत न हो ।

Problem 5: मेरा program अच्छी तरह से compile हो चूका है पर run नहीं हो पा रहा । अब मै क्या करूँ ?

Answer 5: इसे debug करो! program को debug करने की विधि chapter 1 में बताई गयी है, खासकर 1.11 और 1.11a में..

Problem 6: Visual Studio में line numbering कैसे on किया जाये?

Answer 6: Tools Menu में जाकर Options select करें । Text Editor submenu में, All Languages (या C/C++) को चुने । ऐसा करने से आपको दायी ओर line numbers के लिए checkbox दिख जायेगा ।

Problem 7: जब मै Visual Studio 2010 में अपने program को compile करता/करती हूँ, मुझे COFF file के invalid होने का एक error message मिलता है । मै इसे कैसे fix करूँ ?

Answer 7: यदि आपको Visual Studio 2010 में compile करने के वक़्त नीचे दिया गया error मिलता है:

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

आप Microsoft OS/compiler incompatibility के शिकार हो गए हो । इसमें आपको code के साथ कुछ करने की ज़रूरत नहीं है ।

इस समस्या का सबसे अच्छा उपाय Visual Studio 2010 Service Pack 1 को download करके install कर लेना है ।

यदि ये भी आपकी परेशानी दूर नहीं करता, तो इस Stack Overflow thread पे इस problem के होने के कारण और इसे solve करने के कई अच्छे suggestions दिए गए हैं ।

Problem 8: जब मै अपने program को compile करता/करती हूँ, मुझे unresolved external symbol _main or _WinMain@16 के बारे में एक error मिलता है

Answer 8: इसका मतलब है आपका compiler आपके program में main() function को नहीं खोज पा रहा । आपके हर C++ program में एक main() function होना ही चाहिए ।

आप कुछ चीजें check कर सकते हो:
a) क्या आपके code में main नाम का कोई function है?
b) क्या main को बिना spell mistake के लिखा गया है?
c) क्या आपके project की कोई file main को शामिल करती है? (यदि नहीं, तो या तो main को किसी ऐसे file में move करें जो आपके project का हिस्सा हो, या फिर वो file, जिसमे main() function है, उसे अपने project से जोड़ लें । इसमें ज्यादा जानकारी के लिए 1.8 -- Multiple files के साथ programs देखे ।
d) जिस file में main स्थित है, क्या वो compile होने के लिए set की गयी है ( इसे कैसे करना है, इस पर ज्यादा जानकारी के लिए इस lesson पर भी एक नज़र डालें 1.8 -- Multiple files के साथ programs ) ।

Problem 9: जब मै अपने program को compile करता/करती हूँ, मुझे “Cannot find or open the PDB file” के न मिलने का एक warning मिलता है

Answer 9: ये एक warning है, कोई error नहीं, इसलिए इसे आपके program के काम करने पर कोई प्रभाव नहीं डालना चाहिए । फिर भी, ये परेशान करता है । इसे fix करने के लिए, debug menu में जाएँ, फिर Debug menu -> Options and Settings -> Symbols में जाकर “Microsoft Symbol Server” को check mark कर लें ।

Problem 10: मै command line पे Code::Blocks या g++ का इस्तेमाल कर रहा/रही हूँ । इसमें C++11 की कोई भी functionality काम नहीं कर रही

Answer 10: Code::Blocks में, Project->Build options->Compiler settings->Compiler flags में जाकर “Have g++ follow C++11 ISO C++ language standard” को check mark कर लें ।

Command line में g++ के साथ compile करने के लिए, command line पे ये जोड़ लीजिये: -std=c++11

मेरी समस्याएँ कुछ और हैं जो मेरी समझ से परे हैं, मुझे जल्द से जल्द इसका solution कहाँ मिलेगा?

Answer: अप जैसे-जैसे यहाँ के materials को लेते हुए आगे बढोगे, आपके मन में ज़रूर कुछ न कुछ अवल आयेंगे, या फिर आपके सामने कोई अनचाही समस्या उत्पन्न हो जाएगी । इस सभी मुश्किलों से पार पाने का सबसे अच्छा और तेज तरीका programming questions और answers के लिए design की गयीं websites, जैसे की Stack Overflow में से सहायता प्राप्त करना है । आप अपने सवालों को वहाँ post करें । ध्यान रहे की questions post करते वक़्त आप अपने problem का विस्तृत विवरण दे रहे हो, और इससे जुडी सारी information, जैसे की आप कौन सा OS इस्तेमाल कर रहे हो या आपको किस IDE के साथ ये समस्या आ रही है, इन सब के बारे में आपने पूरी detail दी है ।

1.1 -- किसी program का structure
Index
0.6a -- Build configurations

Leave a Comment

Put C++ code inside [code][/code] tags to use the syntax highlighter