2010-02-12 8 views

उत्तर

20
#include <windows.h> 

Sleep(number of milliseconds); 

या यदि आप अपने कार्यक्रम को रोकने के लिए, जबकि एक अन्य कार्यक्रम के लिए इंतज़ार कर चाहते हैं, WaitForSingleObject का उपयोग करें।

+0

त्रुटि त्रुटि C3861: 'नींद': पहचानकर्ता नहीं मिला // #in36e

+0

क्या आप अपना कोड पोस्ट कर सकते हैं और आप किस कंपाइलर का उपयोग कर रहे हैं? यह मेरी मशीन पर जीसीसी के साथ काम करता है: # शामिल int मुख्य() { नींद (1000); } – IVlad

+0

ठीक है आपके पास आधुनिक है और इसलिए पहले लाइन में और बूढ़े इनके बाद, क्या यह नियम है? कम से कम यह उस आदेश के साथ काम किया। –

7

आप को बढ़ावा देने का उपयोग कर रहे हैं, तो आप thread::sleep फ़ंक्शन का उपयोग कर सकते हैं:

#include <boost/thread/thread.hpp> 
boost::system_time time = boost::get_system_time(); 
time += boost::posix_time::seconds(1); 
boost::thread::sleep(time); 

अन्यथा, आप Win32 एपीआई का उपयोग करने के लिए जा रहे हैं:

#include <windows.h> 
Sleep(1000); 

और, जाहिरा तौर पर, सी + + 0x में यह शामिल है:

#include <thread> 
std::this_thread::sleep_for(chrono::seconds(1)); 
+0

मेरा भगवान, वह आखिरी पंक्ति बदसूरत है। –

+0

@ स्टेव: माफ़ी माफी। –

+1

जब तक आप सी ++ मानक समिति पर नहीं हैं, तब तक मैं आपको दोष नहीं देता ;-) –

1

यदि आप प्रोग्राम को "रोके गए" के दौरान उत्तरदायी रहने की इच्छा रखते हैं, तो आप ne एक टाइमर घटना का उपयोग करने के लिए एड।

+0

वास्तव में, क्यूटी में, यदि आप चाहते हैं कि आपका प्रोग्राम उत्तरदायी हो, जबकि मुख्य थ्रेड से निष्पादित कोड के टुकड़े से रोका गया हो, तो आप मुख्य धागे में भी अपने टाइमर की टाइमआउट घटना नहीं करना चाहती। –

0

यह इस बात पर निर्भर करता है कि आप किस प्रकार का प्रोग्राम लिख रहे हैं।

एक कंसोल ऐप बस सो सकता है। एक जीयूआई ऐप शायद ऐसा नहीं करना चाहता, क्योंकि सभी मेनू और विजेट असंवेदनशील हो जाएंगे, और ऐप इस अवधि के दौरान खुद को फिर से नहीं लेगा। इसके बजाए आपको कुछ समय करने की ज़रूरत है जैसे कॉलबैक के साथ टाइमर को सेट अप करें।

0

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

0

कृपया ध्यान दें कि कोड ऊपर संहिता :: ब्लाकों 12.11 और विजुअल स्टूडियो पर परीक्षण किया गया था विंडोज 7

पर 2012
अपने कार्यक्रम को रोकने या इंतजार मजबूर कर के लिए, आप कई विकल्प हैं:


  • नींद (अहस्ताक्षरित int)

मूल्य मिलीसेकंड में एक सकारात्मक पूर्णांक होना चाहिए।

#include <iostream>  //for using cout 
#include <stdlib.h>  //for using the function sleep 

using namespace std; //for using cout 

int main(void)   
{ 
    cout << "test" << endl; 
    sleep(5000);   //make the programme waiting for 5 secondes 
    cout << "test" << endl; 
    sleep(2000);   // wait for 2 secondes before closing 

    return 0; 
} 

आप बहुत लंबा इंतजार हैं, कि शायद पैरामीटर का मतलब है दूसरे में है: इसका मतलब है कि यदि आप 2 सेकंड के लिए अपने कार्यक्रम इंतजार करना चाहते हैं, 2000

यहाँ दर्ज एक उदाहरण है। तो इस तरह इसे बदल:

sleep(5); 

जो लोग त्रुटि संदेश या समस्या नींद का उपयोग कर विशेष रूप से कोड :: Bloks पर _sleep या नींद से इसे बदलना कोशिश पाने के लिए।
और यदि आपको अभी भी समस्या हो रही है, तो कोड की बिगिनिंग पर इस लाइब्रेरी को जोड़ने का प्रयास करें।

#include <stdio.h> 
#include <time.h> 
#include <unistd.h> 
#include <dos.h> 
#include <windows.h> 

  • प्रणाली ("रोकें")

एक सरल "नमस्ते दुनिया" खिड़कियों सांत्वना आवेदन पर कार्यक्रम आप कुछ भी देख सकते हैं इससे पहले कि शायद पास होगा। वह मामला जहां आप सिस्टम का उपयोग कर सकते हैं ("रोकें")।

#include <iostream>  

using namespace std; 

int main(void)   
{ 
    cout << "Hello world!" << endl; 

    system("PAUSE"); 

    return 0; 
} 

आप संदेश मिलता है "त्रुटि: 'प्रणाली' इस दायरे में घोषित नहीं किया गया था" बस कोड की biggining पर निम्न पंक्ति जोड़ें:

#include <cstdlib> 

  • cin.ignore()

एक ही परिणाम cin.ignore() का उपयोग करके पहुंचा जा सकता है:

#include <iostream>  

using namespace std;  

int main(void)   
{ 
    cout << "Hello world!" << endl; 

    cin.ignore(); 

    return 0; 
} 

  • cin.get()

उदाहरण:

#include <iostream>  

using namespace std;  

int main(void)   
{ 
    cout << "Hello world!" << endl; 

    cin.get(); 

    return 0; 
} 

  • getch()

बस पुस्तकालय conio.h जोड़ने के लिए भूल नहीं है:

#include <iostream>  
#include <conio.h> //for using the function getch() 

using namespace std;  

int main(void) 
{ 

    cout << "Hello world!" << endl; 

    getch(); 

    return 0; 
} 

आप संदेश आप) _getch उपयोग करने के लिए (कह कर सकते हैं getch

1
के insted

सी ++ 11 में, आप मानक लाइब्रेरी सुविधाओं के साथ ऐसा कर सकते हैं:

#include <chrono> 
#include <thread> 
std::this_thread::sleep_for(std::chrono::milliseconds(x)); 
संबंधित मुद्दे