2011-12-04 5 views
6

मैं एक ncurses प्रोग्राम बनाने की कोशिश कर रहा हूं जो एक निश्चित बिंदु पर ncurses मोड को समाप्त कर देगा, और सामान्य टर्मिनल मोड में फिर से शुरू होगा, लेकिन अभी भी प्रोग्राम चल रहा है। क्या यह संभव है? endwin(); कार्यक्रम समाप्त होता है। यहाँ मेरी कोड है (कार्यों के बारे में चिंता न करें, मैं उन्हें पहले किया):सी ++ प्रोग्राम समाप्त किए बिना मैं ncurses कैसे समाप्त कर सकता हूं?

clear(); 
refresh(); 
endwin(); 
boxmessage("STEP 1"); 
consolewrite("Removing Popularity Contest..."); 
std::vector<std::string> removepak; 
removepak.push_back("popularity-contest"); 
removepackages(removepak); 
+0

मैंने पहले कभी एनसीयूआरएस का उपयोग नहीं किया है, लेकिन क्या आपने कमांड लाइन से निष्पादन योग्य का आह्वान करने का प्रयास किया है? – Bojangles

+0

हां, मैंने ऐसा करने की कोशिश की है (इस तरह मैंने हमेशा ऐसा किया)। – MiJyn

+0

मैंने यह जानने के लिए पर्याप्त शाप नहीं किए हैं कि यह कितना आसान है, लेकिन एक संभावित वैकल्पिक एवेन्यू * * एनसीआरएस में रहना होगा, लेकिन पूरे टर्मिनल को एक विंडो के साथ कवर करना जो लाइन-वार, टर्मिनल जैसा है बातचीत। – dmckee

उत्तर

4

endwin() अपने कार्यक्रम समाप्त नहीं है; कुछ और ऐसा करना चाहिए।

इस कार्यक्रम के अपने सिस्टम पर ठीक से काम करता (उबंटू 11.04, जी ++ 4.5.2):

#include <curses.h> 
#include <unistd.h> 
#include <iostream> 
int main() { 
    initscr(); 
    mvaddstr(10, 10, "Hello, world"); 
    refresh(); 
    sleep(4); 
    endwin(); 
    std::cout << "DONE\n"; 
} 

यह उम्मीद की स्थिति में, प्रिंट "नमस्ते, दुनिया" स्क्रीन को साफ करता है, 4 सेकंड के लिए सोता है, तो स्क्रीन को पुनर्स्थापित करता है और प्रिंट करता है "किया गया"।

टिप्पणियों में उल्लेख किया गया था, यदि boxmessage() ncurses का उपयोग करता है, तो endwin() पर कॉल करने के बाद यह काम नहीं करेगा।

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

अद्यतन (लगभग 16 महीने बाद), ओ पी के सबसे हाल ही टिप्पणी उद्धृत:

ठीक है, मैं बग मिला। ऐसा इसलिए था क्योंकि मैंने बटनों की श्रृंखला बनाई, फिर मैंने 'केस: एक्स' भाग किया, और मैंने अभी पूर्णांक नहीं लिखा जो फ़ंक्शन को सही तरीके से कॉल करता है। सहायता का प्रयास करने के लिए धन्यवाद!

संबंधित मुद्दे

 संबंधित मुद्दे