2011-01-14 17 views
17

संभव डुप्लिकेट:
How to write program during compiling?अजीब सी साक्षात्कार सवाल

हाय दोस्तों। मुझे साक्षात्कार के प्रश्नों से भरी साइट पर यह समस्या मिली, और इससे फंस गया। क्या कुछ प्रीप्रोसेसर निर्देश है जो संकलन के दौरान मानक इनपुट से पढ़ने की अनुमति देता है?

एक छोटा सी प्रोग्राम लिखें, जो संकलन करते समय इनपुट टर्मिनल से एक और प्रोग्राम लेता है, और चलने पर दूसरे प्रोग्राम के परिणाम मिलते हैं। (नोट: कुंजी है, यूनिक्स सोचो)। मान लीजिए, कार्यक्रम फिर 1.c है, जबकि संकलन

$ cc -o 1 1.c 
int main() { printf("Hello World\n"); } ^D 
$ ./1 
Hello World 

संपादित यह पता चला इस सवाल का एक सटीक डुप्लिकेट है। How to write program during compiling?

+0

मैं संपादित अपने नमूना खोल बेहतर है कि मैं क्या लगता है कि आप का मतलब मैच के लिए आदेश देता है। अगर मैं गलत हूं - ओह! –

+0

धन्यवाद जॉन; वास्तव में मूल एक टाइपो था। –

उत्तर

55

#include "/dev/stdin" चाल है।

सर्वश्रेष्ठ पर एक मूर्ख साक्षात्कार प्रश्न।

+27

Wooooow। वह है ... बुराई। – detly

+1

सही उत्तर, अनावश्यक टिप्पणी हालांकि –

+16

"मूर्ख" इसका वर्णन करना शुरू नहीं करता है - यह मूर्खतापूर्णता की गंभीरता है कि पूछने वाले को बाहर निकाला जाना चाहिए और संक्षेप में गोली मार दी जानी चाहिए। –

0

आपको संकलक को मानक इनपुट से अपना स्रोत कोड इनपुट लेने और उसे संकलित करने की आवश्यकता है। इसके लिए शायद कमांड लाइन तर्क है।

इस तरह, आप अपने कंपाइलर में किसी अन्य प्रोग्राम के आउटपुट को पाइप कर सकते हैं।

संपादित हमेशा की तरह, स्टैक ओवरफ़्लो already had an answer for this.

echo "int main() { return 0; }" | gcc -x c - 

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

+0

धन्यवाद, लेकिन यह वह नहीं है जिसे मैं पूछ रहा था। –

3

एक अपर्याप्तता की भावना में, मैंने एक और मंच/पर्यावरण-स्वतंत्र संस्करण बनाने की कोशिश की। हालांकि, मैं यहाँ अटक गया ... तो यह मेरा सवाल है, मैं '???' को बदल सकता हूं साथ में?

#ifdef _WIN32 
#include ??? 
#else 
#include "/dev/stdin" 
#endif 

संपादित: ohmantics के लिए धन्यवाद मैं अब के साथ काम कर सकते हैं:

#ifdef _WIN32 
#include "CON" 
#else 
#include "/dev/stdin" 
#endif 
+3

'# शामिल" CON "' वहां चाल है। – ohmantics

+0

@ohmantics तो यह है :) धन्यवाद! – William

+3

मुझे याद है कि इंटरनेट एक्सप्लोरर आपके कंप्यूटर को बीएसओडी करेगा यदि उसे '' जैसा कुछ सामना करना पड़ा। – zneak

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