2012-03-08 21 views
16

में डीबग करने के लिए एक सी ++ प्रोग्राम में इनपुट पिपिंग करने से पहले यह पूछा गया है, लेकिन अब तक मुझे कोई जवाब नहीं मिला है। मैं बहु-लाइन इनपुट, आईई के साथ अपना प्रोग्राम शुरू करने की कोशिश कर रहा हूं। कुछ मैं हर बार कमांड लाइन में टाइप नहीं करना चाहता (जैसा कि मैं शायद गलती करता हूं)। मैंने कमांड लाइन तर्कों में देखा और मैंने वहां अपना इनपुट चिपकाया, लेकिन यह हर पंक्ति को कमांड के रूप में व्याख्या करता है।विजुअल स्टूडियो

इनपुट मामले में यह मदद करता है:

8 
c j i b s x k j 
t a o a v y z l 
x r t s w o n m 
z y x e n s p r 
l l o b s t e r 
t g x a a a a a 
j p e l a k e k 
t r s l j e e e 
cat 
test 
baseball 
bake 
paste 
lobster 
stake 
zen 
locks 
rake 
gel 
slack 
jar 
dinosaur 
0 

उत्तर

37

एक फ़ाइल में अपने डेटा को रखो तो दृश्य स्टूडियो में परियोजना गुण पर जाएं और "डिबगिंग" श्रेणी का चयन करें।

"कमांड तर्क" संपत्ति प्रकार में:

< "path/to/the/file" 

अब जब डिबगर शुरू की है कि फ़ाइल मानक इनपुट के माध्यम से कार्यक्रम को खिलाया जा जाएगा या जब आप दृश्य स्टूडियो के भीतर कार्यक्रम शुरू (लेकिन बिना डीबगर) Ctrl-F5 का उपयोग कर।

यदि आप प्रोजेक्ट के साथ परीक्षण फ़ाइल को स्थानांतरित करना चाहते हैं तो आप प्रोजेक्ट निर्देशिका निर्दिष्ट करने के लिए वीएस मैक्रोज़ का उपयोग कर सकते हैं।

+1

इसके अतिरिक्त मैं आमतौर पर प्रोजेक्ट में नियमित फ़ाइल के रूप में डेटा फ़ाइल जोड़ता हूं, और इसे 'बिल्ड से बाहर' चिह्नित करता हूं। फिर आप डीबगर में ' Joe

+0

अगर मुझे सही याद है, तो यह दस्तावेज नहीं है लेकिन काम करता है! यह विशेष रूप से आश्चर्यजनक है क्योंकि <आमतौर पर खोल द्वारा संभाला जाता है, जो इस मामले में मौजूद नहीं है। –

+1

इस बात से अवगत होना एक बात यह है कि वीएस 2008 में डीबगर रीडायरेक्शन टूट गया था: http://stackoverflow.com/a/3122074/12711 यह स्पष्ट नहीं है कि 2008 के कौन से संस्करणों में यह टूट गया है - यह आज मेरे लिए वीएस 2008 में काम कर रहा है Win7 x64 पर SP1, लेकिन बग रिपोर्ट में टिप्पणियां इंगित करती हैं कि कुछ लोगों के लिए VS2008 SP1 इसे ठीक नहीं करता है। –

4

आप एक फ़ाइल के रूप में अपने इनपुट बचाने सकता है ("intput.txt" की तरह)।। फिर फोन

freopen("intput.txt", "r", stdin); 
//code to read from stdin. 
fclose(stdin); 
संबंधित मुद्दे