0.7 —
C++ में
आने वालीं कुछ सामान्य परेशानियाँ
इस section में, हम कुछ सामान्य दिक्कतों के
बारे में चर्चा करेंगे, जो अक्सर नए programmers
को
परेशान करती हैं । इसका मतलब ये नहीं की हम compilation या exexution
में
आने वाली सारी परेशानियों को यहाँ हल करेंगे, बल्कि हम केवल कुछ basic
problems को solve करने के तरीके सीखेंगे । यदि
आपको लगता है की यहाँ कुछ और problems के बारे में भी बताया जाना
चाहिए, तो आप comment section में हमे suggest
कर
सकते हो ।
|
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 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 के
बीच पहचान करने में कोई दिक्कत न हो ।
|
|
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 दी है ।
|

No comments:
Post a Comment