C ++ कंसोल एप्लिकेशन को तुरंत बाहर निकलने से कैसे रोकें?


193

हाल ही में, मैं इस वेबसाइट से C ++ सीखने की कोशिश कर रहा हूं । दुर्भाग्य से जब भी मैं किसी एक कोड सैंपल को चलाने की कोशिश करता हूं, तो मैं उस प्रोग्राम को लगभग डेढ़ सेकंड के लिए खोलता हूं और फिर तुरंत बंद कर देता हूं। क्या कार्यक्रम को तुरंत बंद करने से रोकने का कोई तरीका है ताकि मैं अपने प्रयास का फल देख सकूं?


5
क्या आप निष्पादन योग्य पर डबल-क्लिक कर रहे हैं? क्या आप विंडोज में काम कर रहे हैं? आप कमांड शेल से काम क्यों नहीं कर रहे हैं और कमांड में टाइपिंग कर रहे हैं जैसा कि आप उन्हें निष्पादित करना चाहते हैं?
S.Lott

8
@ एस लोट: क्योंकि अगर आप अपने आईडीई में "गो" बटन दबाते हैं तो आपको कंसोल से परेशान होने की जरूरत नहीं है।
बिली ओनेल

4
आपको एक अच्छी पुस्तक प्राप्त करने पर विचार करना चाहिए जिससे C ++ सीखना है। वेबसाइट अच्छे संसाधन हैं, लेकिन अच्छे परिचयात्मक पाठ के लिए कोई मेल नहीं है। यहाँ सी ++ पुस्तकों की एक निश्चित सूची है: stackoverflow.com/questions/388242/…
जेम्स मैकनेलिस

6
@ बिली यदि गो बटन को दबाने पर यह समाप्त हो जाता है, तो आप गलत आईडीई का उपयोग कर रहे हैं।

2
यहां पहले से पूछा और उत्तर दिया गया: stackoverflow.com/questions/902261/… , हालांकि यह एक बेहतर शीर्षक है।
dmckee --- पूर्व-संचालक बिल्ली का बच्चा

जवाबों:


121

संपादित करें: जैसा कि चार्ल्स बेली नीचे एक टिप्पणी में सही बताते हैं, यह काम नहीं करेगा अगर इसमें अक्षर बफ़र किए गए हों stdin, और इसके आसपास काम करने का कोई अच्छा तरीका नहीं है। यदि आप डिबगर संलग्न के साथ चल रहे हैं, तो जॉन डिब्लिंग का सुझाया गया समाधान संभवतः आपकी समस्या का सबसे साफ समाधान है।

उस ने कहा, मैं इसे यहाँ छोड़ दूँगा और शायद कोई और इसे उपयोगी समझेगा। मैंने इसे विकास के दौरान परीक्षण लिखते समय एक त्वरित हैक के रूप में बहुत उपयोग किया है।


अपने mainफ़ंक्शन के अंत में , आप कॉल कर सकते हैंstd::getchar();

इससे एक एकल चरित्र प्राप्त होगा stdin, इस प्रकार आपको "प्रेस जारी रखने के लिए कोई भी कुंजी" व्यवहार की तरह देता है (यदि आप वास्तव में "किसी भी कुंजी को दबाएं" संदेश चाहते हैं, तो आपको खुद को प्रिंट करना होगा)।

आप की जरूरत #include <cstdio>के लिए getchar


15
getcharसमस्या को हल नहीं करता है - या केवल सीमित परिस्थितियों में, कम से कम। यह एक चार से पढ़ता है stdin, लेकिन अगर वहाँ पहले से ही स्टड से बफर चरित्र हैं, तो आप एक संकेत प्रिंट या नहीं प्रिंट की परवाह किए बिना प्रतीक्षा करेंगे।
CB बेली

1
@Charles: एक अच्छी बात। \nआंशिक समाधान होने तक अनदेखा करना , लेकिन यदि इनपुट की एक से अधिक लाइन बफ़र की जाती है तो यह मदद नहीं करेगा। मुझे इनपुट स्ट्रीम से सब कुछ साफ़ करने के लिए मानक C ++ तरीके का पता नहीं है। : - /
जेम्स मैकनेलिस

1
@ नाम: पुराना है, लेकिन कैसे std::cin.ignore(std::cin.rdbuf()->in_avail());? यहीं से मिला ।
GMANNICKG

1
एक विकल्प जो मैं उपयोग करता हूं, वह std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');है #include <limits>
Xio

5
कृपया ऐसा न करें। :( यह करने के लिए आपके कार्यक्रम के समारोह का हिस्सा नहीं है।
लाइटनेस दौड़

138

यदि आप Visual Studio का उपयोग कर रहे हैं और आप IDE से कंसोल एप्लीकेशन शुरू कर रहे हैं:

CTRL-F5 (डिबगिंग के बिना शुरू) को दबाने से एप्लिकेशन शुरू हो जाएगा और किसी भी कुंजी को दबाए रखने तक कंसोल विंडो को खुला रखें।


1
आईडीई से कंसोल को शुरू करना? आप ऐसा कैसे और क्यों करेंगे?
कोडीबस्टीन

1
बहुत बढ़िया, यह काम किया। यह विज़ुअल स्टूडियो का डिफ़ॉल्ट व्यवहार क्यों नहीं है?
ल्यूमिनेयर

मैंने यह भी सोचा था कि ऐसा करने का तरीका है, आज तक, जब मैं एक सरल कंसोल प्रोग्राम
बनाता हूं

1
क्या डीबगिंग के साथ इसका कोई संस्करण है ?
भाग्यशाली

109

जेम्स द्वारा समाधान सभी प्लेटफार्मों के लिए काम करता है।

वैकल्पिक रूप Windowsसे आप mainफ़ंक्शन से वापस आने से पहले निम्नलिखित को भी जोड़ सकते हैं :

  system("pause");

यह pauseकमांड चलाएगा जो तब तक इंतजार करता है जब तक आप एक कुंजी दबाते हैं और एक अच्छा संदेश प्रदर्शित करते हैंPress any key to continue . . .


2
यह एक समाधान की एक Rube Goldberg भिन्नता की तरह लगता है।
डेव वान ने आईन्दे

4
@ डेव वान डेन आईंडे: यह भी काफी सामान्य है और देवसीपीपी में बॉयलरप्लेट कोड में मानक है। +1
बिली ओनेल

4
@ दूसरी तरफ यह स्पष्ट करता है कि यह उदाहरण के लिए केवल एक प्रतिरूप है, जबकि std: getch को गलती से वास्तविक कोड में छोड़ा जा सकता है।
मार्टिन बेकेट

2
यह विंडोज पर उन लोगों के लिए एक पूरी तरह से वैध समाधान है। जबकि आदर्श नहीं, यह काम करता है
thecoshman

सबसे आसान, तेज, समाधान। बस मुझे क्या चाहिए
कॉडीबगस्टीन

83

यदि आप Microsoft के विजुअल C ++ 2010 एक्सप्रेस का उपयोग कर रहे हैं और CTRL + F5 के साथ समस्या में भाग लेते हैं, तो कार्यक्रम समाप्त होने के बाद कंसोल को खुला रखने के लिए काम नहीं कर रहा है, इस MSDN थ्रेड पर एक नज़र डालें ।

CTRL + F5 चलाने के बाद कंसोल बंद करने के लिए आपकी IDE सेट की जाती है; वास्तव में, दृश्य C ++ 2010 में एक "खाली प्रोजेक्ट" डिफ़ॉल्ट रूप से कंसोल को बंद कर देता है। इसे बदलने के लिए, जैसा कि Microsoft मॉडरेटर ने सुझाया है:

कृपया अपने प्रोजेक्ट के नाम पर क्लिक करें और गुण पृष्ठ पर जाएँ, कृपया कॉन्फ़िगरेशन गुणों का विस्तार करें -> लिंकर -> सिस्टम, कृपया सबसिस्टम ड्रॉपडाउन में कंसोल (/ SUBSYSTEM: CONSOLE) का चयन करें। क्योंकि, डिफ़ॉल्ट रूप से, खाली प्रोजेक्ट इसे निर्दिष्ट नहीं करता है।


1
यदि यह कंसोल ऐप नहीं है तो क्या होगा?
जेसी पेपर

3
@ Mr.Underhill यह तभी काम करेगा जब आप डिबगर (Ctrl + F5) के बिना लॉन्च करेंगे ।
जोनाथन मी

एकमात्र नॉन-हैक समाधान होने के अलावा, यह मुख्य स्टैक ऑब्जेक्ट्स डिस्ट्रक्टर्स से प्रिंट देखने का एकमात्र तरीका भी है।
पोनरोस

20

मैं आमतौर पर सिर्फ main()घुंघराले ब्रेस पर एक ब्रेकपॉइंट लगाता हूं । जब प्रोग्राम का अंत जो भी मतलब है कि ब्रेकपॉइंट मारा जाएगा और आप आउटपुट विंडो को देखने के लिए कंसोल विंडो में ALT-Tab तक पहुंच सकते हैं।


14

यदि आप विंडोज का उपयोग कर रहे हैं तो सिर्फ कंसोल से प्रोग्राम को क्यों न चलाएं। इस तरह प्रोग्राम खत्म होने के बाद खिड़की खुली रहती है।

[संपादित करें]: जब मैं केडीवेल्ड 4 का उपयोग करता हूं तो आईडीई के निचले भाग में एक टैब में बैश (एक लिनक्स सीएलआई) का एक पूर्ण विकसित उदाहरण है। इस तरह की परिस्थितियों में मैं जो उपयोग करता हूं।


3
क्योंकि अगर आप आईडीई का उपयोग कर रहे हैं तो आप आमतौर पर कंसोल का उपयोग नहीं करते हैं। तुम जाओ धक्का, कार्यक्रम चलता है, और यह बात है।
बिली ओनेल

3
ऐप के समाप्त होने पर कोई भी सक्षम आईडीई स्क्रीन पर कंसोल रखेगा - कोड :: उदाहरण के लिए ब्लॉक बिल्कुल ऐसा करता है।

3
@nobugz: मुझे यह समझ में आया। खिड़की को चारों ओर से चिपकाने के लिए, आपके पास / SUBSYSTEM: लिंकर कमांड लाइन पर CONSOLE होना चाहिए। दस्तावेज़ीकरण कहता है कि यदि mainयह परिभाषित किया गया है तो यह डिफ़ॉल्ट है, लेकिन अगर मैंने इसे स्पष्ट रूप से कमांड लाइन पर सेट नहीं किया है, तो वीएस आवेदन के बाहर निकलने पर खिड़की को मारता है। sigh
जेम्स मैकनेलिस

2
@ नाम: पहली जगह में एक कंसोल विंडो प्राप्त करना आवश्यक है। इसके बदले में WinMain () के बजाय मुख्य () की आवश्यकता होती है, दूसरे तरीके की नहीं। मैं थोड़ा सा खो गया हूँ ...
हंस पैसेंट

4
@nobugz: यदि आप "Win32 कंसोल एप्लिकेशन" के बजाय "खाली प्रोजेक्ट" से शुरू करते हैं, तो सबसिस्टम प्रोजेक्ट गुणों में स्पष्ट रूप से सेट नहीं है। यदि आप mainप्रोजेक्ट में परिभाषित करते हैं, तो डिफ़ॉल्ट रूप से लिंकर CONSOLE सबसिस्टम का उपयोग करता है। डिबगिंग या रनिंग करते समय, आपको एक कंसोल विंडो मिलेगी। हालाँकि, जब तक आप प्रोजेक्ट गुणों में सबसिस्टम के रूप में स्पष्ट रूप से निर्दिष्ट नहीं करते, विजुअल स्टूडियो कंसोल विंडो को खुला नहीं रखेगा। मैं हमेशा एक खाली परियोजना से शुरू करता हूं और मैं शायद ही कभी व्यक्तिगत परियोजना गुणों को बदलता हूं, इसलिए मैंने कभी भी कंसोल विंडो स्टिक के आसपास नहीं देखा है। भ्रम के लिए खेद है
जेम्स मैकनेलिस

9

अपने कोड के अंत से पहले, यह लाइन डालें:

system("pause");

यह कंसोल को तब तक रखेगा जब तक आप एक कुंजी को नहीं मारते।

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s;
    cout << "Please enter your first name followed by a newline\n";
    cin >> s;
    cout << "Hello, " << s << '\n';
    system("pause"); // <----------------------------------
    return 0; // This return statement isn't necessary
}

इसे भी जारी रखने के लिए "किसी भी कुंजी को दबाएं।" मेरे लिए।
पापाहोटलपापा

8

cin.get();2 बार कॉल करें :

    //...
    cin.get();
    cin.get();
    return 0
}

6
लेकिन दो बार क्यों ??
माधव प्रियंशा

क्या होगा अगर हमें इससे पहले कुछ स्ट्रिंग के अंदर उदाहरण के लिए एक और cin.get () की आवश्यकता है? यह इस परिदृश्य में काम नहीं कर रहा है।
QMaster

4

यदि आप अपना कोड किसी सक्षम IDE, जैसे कि कोड :: ब्लॉक , से चलाते हैं, तो IDE कोड को चलाने के लिए उपयोग किए जाने वाले कंसोल का प्रबंधन करेगा, जब अनुप्रयोग बंद हो जाता है तो इसे खुला रखा जाता है। आप कंसोल को खुला रखने के लिए विशेष कोड नहीं जोड़ना चाहते हैं, क्योंकि यह IDE के बाहर, असली के लिए उपयोग करने पर इसे सही ढंग से कार्य करने से रोकेगा।


3

ठीक है मैं अनुमान लगा रहा हूं कि आप विजुअल स्टूडियो का उपयोग करके विंडोज पर हैं ... क्यों? ठीक है क्योंकि यदि आप किसी प्रकार के लिनक्स ओएस पर हैं तो आप शायद इसे कंसोल से चला रहे होंगे।

वैसे भी, आप अपने कार्यक्रम के अंत में बकवास जोड़ सकते हैं जैसे अन्य सुझाव दे रहे हैं, या आप बस CTRL + F5 को हिट कर सकते हैं (डिबगिंग के बिना शुरू करें) को और विजुअल स्टूडियो कंसोल को एक बार पूरा छोड़ देगा।

एक अन्य विकल्प यदि आप डिबग संस्करण को चलाना चाहते हैं और अपने कोड में बकवास नहीं जोड़ना चाहते हैं, तो कंसोल विंडो खोलें (प्रारंभ -> भागो -> cmd) और अपने डिबग आउटपुट निर्देशिका पर नेविगेट करें । फिर, बस अपने निष्पादन योग्य का नाम दर्ज करें और यह कंसोल में आपका डिबग प्रोग्राम चलाएगा। यदि आप वास्तव में चाहते हैं तो आप विजुअल स्टूडियो के अटैच टू प्रोसेस या कुछ और का उपयोग कर सकते हैं।


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

using namespace std;

int main()
{

    cout << "Press any key to continue...";
    getch();

    return 0;
}

मैं किसी और को यह नोटिस नहीं किया तो यहाँ यह है।


मैं जोड़ूंगा कि conio.hएक विंडोज विशिष्ट हेडर है और हर मशीन पर उपलब्ध नहीं हो सकता है (या आपको इसे अलग से लिंक करने की आवश्यकता हो सकती है, जो एक ओवरसिल है)।
यक्सीसारविन

काम कर रहे। बस गेट बदलने की जरूरत (); से _getch (); चूँकि यह पदावनत हो गया
ncesar

2

यदि आप वास्तव में विजुअल C ++ में अपने एप्लिकेशन को डिबग कर रहे हैं, तो टूलबार पर F5 या ग्रीन त्रिकोण को दबाएं। यदि आप वास्तव में इसे डीबग नहीं कर रहे हैं (आपके पास कोई ब्रेकप्वाइंट सेट नहीं है), तो Ctrl + F5 दबाएं या मेनू पर डिबगिंग के बिना स्टार्ट चुनें (यह आमतौर पर डीबग मेनू पर होता है, जिसे मैं मानता हूं कि भ्रमित है।) यह थोड़ा तेज होगा। और आपके लिए अधिक महत्वपूर्ण बात यह है कि आप अपना कोड बदलने के बिना अंत में विराम देंगे।

वैकल्पिक रूप से, कमांड प्रॉम्प्ट खोलें, उस फ़ोल्डर में नेविगेट करें जहां आपका एक्स है, और उसका नाम लिखकर इसे चलाएं। इस तरह जब यह कमांड प्रॉम्प्ट को पूरा करना बंद कर देता है तो यह बंद नहीं होता है और आप आउटपुट देख सकते हैं। मैं कोड को जोड़ने के लिए इन दोनों तरीकों को पसंद करता हूं जो एप्लिकेशन को उसके समाप्त होने पर रोक देता है।


2

बस अपने कार्यक्रम के अंत में निम्नलिखित जोड़ें। यह उपयोगकर्ता इनपुट के कुछ रूप को पकड़ने की कोशिश करेगा, इस प्रकार यह कंसोल को स्वचालित रूप से बंद करने से रोकता है।

cin.get();

2

किसी exit()फ़ंक्शन से पहले या किसी भी returns में निम्नलिखित पंक्तियों को जोड़ें main():

std::cout << "Paused, press ENTER to continue." << std::endl;
cin.ignore(100000, "\n");

यह मेरे लिए काम नहीं करता है, पहली पंक्ति काम करती है लेकिन एंटर दबाने से कुछ नहीं होता है
Qwertie

2

विज़ुअल स्टूडियो (और केवल विज़ुअल स्टूडियो) के लिए, निम्न कोड स्निपेट आपको 'प्रतीक्षा जारी रखने के लिए कुंजीपट की प्रतीक्षा' देता है , जो इनपुट बफर को पहले फ्लश करके स्पष्ट रूप से एक नई कुंजी दबाने के लिए उपयोगकर्ता की प्रतीक्षा करता है :

#include <cstdio>
#include <tchar.h>
#include <conio.h>

_tprintf(_T("Press a key to continue "));
while( _kbhit() /* defined in conio.h */ ) _gettch();
_gettch();

ध्यान दें कि यह tchar.hमैक्रो का उपयोग कई 'वर्ण सेटों' के साथ संगत करने के लिए करता है (जैसे कि VC ++ उन्हें कॉल करता है)।


2

मैं बस यही करता हूँ:

//clear buffer, wait for input to close program
std::cin.clear(); std::cin.ignore(INT_MAX, '\n');
std::cin.get();
return 0;

नोट: सिने बफर को साफ़ करना और ऐसा केवल तभी आवश्यक है जब आपने अपने कार्यक्रम में पहले किसी बिंदु पर सिनेमा का उपयोग किया हो। इसके अलावा std :: num_limits :: max () का उपयोग करना संभवत: तब INT_MAX बेहतर है, लेकिन यह थोड़ा चिंताजनक है और आमतौर पर अनावश्यक है।


यह काम करता है, लेकिन वापसी 0; यदि मैं इस कोड का उपयोग करता हूं तो निष्पादित नहीं होगा।
wernersbacher

2

का प्रयोग करें #include "stdafx.h"और system("pause");बस नीचे नीचे कोड की तरह।

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    std::cout << "hello programmer!\n\nEnter 2 numbers: ";
    int x, y;
    std::cin >> x >> y;
    int w = x*y;
    std::cout <<"\nyour answer is: "<< w << endl;
    system("pause");
}

systemमें घोषित किया जाता है <cstdlib>, नहीं stdafx.h
मेलपोमिन

1

तुझे जवाब देने के लिए इसी तरह के विचार , बस न्यूनतम विकल्प।

निम्नलिखित सामग्री के साथ एक बैच फ़ाइल बनाएँ:

helloworld.exe
pause

फिर बैच फ़ाइल का उपयोग करें।


1

केवल

#include <cstdio>

    int main(){
        // code...
        std::getchar();
        std::getchar();
        return 0;
    }

किसी कारण के लिए आमतौर पर 1 चरित्र है जब आप एक कार्यक्रम चलाते हैं, तो पहले से ही स्टड में गेटचार के साथ पढ़ना संभव है। इसलिए पहला गेटचार इस चरित्र को पढ़ता है, और दूसरा गेटचार प्रोग्राम से बाहर निकलने से पहले उपयोगकर्ता (आपके) इनपुट की प्रतीक्षा करता है। और एक कार्यक्रम के बाद अधिकांश टर्मिनलों से बाहर निकलता है, विशेष रूप से विंडोज करीब टर्मिनल पर तुरंत। इसलिए हम जो कुछ भी करते हैं उसका उद्देश्य एक कार्यक्रम को खत्म करने से रोकने का एक सरल तरीका है क्योंकि यह सब कुछ आउटपुट करता है। बेशक इसके समाधान के लिए अधिक जटिल और स्वच्छ तरीके हैं, लेकिन यह सबसे सरल है।


2
कृपया कम से कम एक संक्षिप्त विवरण जोड़ें कि यह समस्या क्यों हल करता है।
काया ३

0

यह देखें कि प्रोग्राम समाप्त होने के बाद विंडो को खुला रखने के लिए आपके IDE के पास प्रोजेक्ट सेटिंग में एक चेकबॉक्स है या नहीं। यदि नहीं, तो std::cin.get();मुख्य समारोह के अंत में एक चरित्र को पढ़ने के लिए उपयोग करें। हालाँकि, केवल लाइन-आधारित इनपुट (std :: getline) या बचे हुए अपठित वर्णों से निपटने के लिए अन्यथा उपयोग करना सुनिश्चित करें (std :: newline तक अनदेखा करें) क्योंकि अन्यथा .get () अंत में केवल आपके द्वारा छोड़ा गया कचरा पढ़ा जाएगा। पहले बिना पढ़े।


0

यह अच्छी तरह से काम करने लगता है:

cin.clear();
cin.ignore(2);

यदि आप बफ़र को पहले साफ़ करते हैं, तो जब आप अगले एक को पढ़ेंगे तो यह कोई समस्या नहीं होगी। किसी कारण से cin.ignore(1)काम नहीं करता है, इसे 2 होना चाहिए।


1
2 कभी-कभी पर्याप्त नहीं होता है (जब अधिक कुंजी स्ट्रोक पंक्तिबद्ध होते हैं)। सही तरीका यह है कि कतार में जितने भी पात्र हैं, उन्हें अनदेखा करें। के साथ, करने के लिए cin.rdbuf()->in_avail। कुछ जादू की संख्या जैसे 1 या 2.
कोनराड रूडोल्फ

0

आप हमेशा एक बैच फ़ाइल बना सकते हैं। उदाहरण के लिए, यदि आपके प्रोग्राम को helloworld.exe कहा जाता है, तो कुछ कोड होंगे:

@echo off
:1
cls
call helloworld.exe
pause >nul
goto :1

0

यदि आप विंडोज चला रहे हैं, तो आप कर सकते हैं system("pause >nul");या system("pause");। जब तक आप एक कुंजी दबाते हैं, तब तक यह प्रोग्राम को रोकने के लिए कंसोल कमांड को निष्पादित करता है। >nulकहने से रोकता है Press any key to continue...


0

मैं कार्यक्रम के आखिरी रिटर्न 0 पर एक ब्रेकपॉइंट लगा रहा हूं। यह बढ़िया काम करता है।


1
यह प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण मांगने या उसका स्पष्टीकरण देने के लिए, उनकी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपने स्वयं के पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त प्रतिष्ठा होने पर आप किसी भी पोस्ट पर टिप्पणी करने में सक्षम होंगे ।
रवि धोरिया

1
यह जवाब कैसे प्रदान नहीं करता है? Im एक प्रश्न के लेखक की तरह एक ही स्थिति में और यह मदद करता है।
लियोरस्क

0

मैंने उपयोग किया cin.get()और वह काम किया है, लेकिन एक दिन पहले मुझे एक और का उपयोग करने की आवश्यकता थी cin.get([Array Variable]), जिसके बीच में खाली चरित्र के साथ एक लिंग स्ट्रिंग को हथियाने के लिए। इसलिए cin.get()कमांड प्रॉम्प्ट विंडो को बंद करने से बचें। अंत में मुझे एक और तरीका मिला: CTRL + F5 को बाहरी विंडो में खोलने के लिए दबाएँ और Visual Studio का इस पर नियंत्रण नहीं है। बस अंतिम कमांड चलने के बाद आपको बंद करने के बारे में पूछेगा।


0

मैंने getchar()आखिर में एक फंक्शन डालने की कोशिश की । लेकिन यह काम नहीं किया। इसलिए मैंने जो किया वह getchar()एक के बाद एक दो कार्य जोड़े । मुझे लगता है कि आखिरी डेटा इनपुट के बाद आप getchar()जिस Enterकुंजी को दबाते हैं उसे पहले अवशोषित करता है । इसलिए getchar()एक के बजाय दो कार्यों को जोड़ने का प्रयास करें


0

रन बटन दबाने के बजाय, CTRL और F5 को एक साथ दबाएं, यह आपको संदेश जारी रखने के लिए किसी भी कुंजी को दबाएगा। या टाइप करें "(इसका उपयोग केवल वास्तविक कार्यक्रमों के परीक्षण के लिए करें क्योंकि एंटीवायरस को यह पसंद नहीं है !!!!)" आपके मुख्य कार्य के अंत में लेकिन: (चेतावनी केवल एंटीवायरस डॉन के रूप में वास्तविक कार्यक्रमों के परीक्षण के लिए इसका उपयोग न करें 'यह पसंद है !!!!)


0

वापसी के ठीक पहले Cin.ignore () का उपयोग करें; दो बार

main()
  {
  //your codes 

  cin.ignore();
  cin.ignore();

  return 0;
  }

बस इतना ही


मैं आम तौर पर ऐसा कुछ करता हूं। cin.ignore (); cin.get ();
aj.toulan

-1

आपको केवल x के लिए एक चर सेट करना होगा, फिर रिटर्न 0 से पहले इसे टाइप करें;

cout<<"\nPress any key and hit enter to end...";
cin>>x;

-1

तुम भी अपने main()समारोह की शुरुआत में एक पूर्णांक घोषित कर सकते हैं (कहते हैं int a;) और std::cin >> a;वापसी मूल्य से ठीक पहले डाल दिया । इसलिए कार्यक्रम तब तक चलता रहेगा जब तक आप एक कुंजी दबाते हैं और प्रवेश नहीं करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.