मेरे पास यह विंडोज कंसोल ऐप है जो फ़ाइल लेता है, कुछ गणना करता है, और उसके बाद आउटपुट को निर्दिष्ट फ़ाइल में लिखता है। इनपुट "app.exe -input fullfilename" प्रारूप में निर्दिष्ट है। मुझे इस एप्लिकेशन को मेरे सी ++ प्रोग्राम से कॉल करने की आवश्यकता है, लेकिन मुझे फाइलों के पथों में रिक्त स्थान के साथ समस्या है। जब मैं एप्लिकेशन सीधे cmd.exe से टाइप करके (स्पष्टता के लिए आउटपुट फ़ाइल निर्दिष्ट किए बिना) फोनcstdlib सिस्टम के माध्यम से रिक्त स्थान के साथ पैरामीटर कैसे पास करें
"c:\first path\app.exe" -input "c:\second path\input.file"
सब कुछ उम्मीद के रूप में काम करता है। लेकिन, जब मैं cstdlib std :: प्रणाली का उपयोग कर की कोशिश() फ़ंक्शन, अर्थात
std::system(" \"c:\\first path\\app.exe\" -input \"c:\\second path\\input.file\" ");
बाहर है कि सी सांत्वना प्रिंट: \ पहले किसी वैध आदेश नहीं है। यह शायद आम गलती है और इसका सरल समाधान है, लेकिन मैं कोई भी खोजने में असमर्थ हूं। किसी भी मदद के लिए Thx।
क्या आपने रिक्त स्थान से बचने की कोशिश की है? – Troubadour
यूनिक्स सिस्टम में, यह खोल की ज़िम्मेदारी है, और इसे काम करना चाहिए। मुझे यकीन नहीं है कि विंडोज पर कौन सी ज़िम्मेदारी है, लेकिन मुझे लगता है कि यह एक फर्क पड़ता है कि आप एमएसवीसी ++ या मिनजीडब्ल्यू या सिगविन का उपयोग कर रहे हैं या नहीं। क्या आप हमें बता सकते हैं कि आप किस कंपाइलर का उपयोग कर रहे हैं? –
यह काम करता प्रतीत होता है, यह सुनिश्चित नहीं है कि क्यों: 'std :: system (" \ "\" c: \\ पहला पथ \\ app.exe \ "-input \" c: \\ दूसरा पथ \\ input.file \ "\" ");' – Naveen