2013-10-19 11 views
9

के लिए सी में पुनर्निर्देशन का उपयोग कैसे करें मैं टर्मिनल से फ़ाइल प्राप्त करने की आवश्यकता, मैं जानता हूँ कि आदेश दिखेगा की तरह:फ़ाइल इनपुट

./a.out < fileName.txt 

मुझे यकीन है कि कैसे fgets उपयोग करने के लिए() में नहीं कर रहा हूँ मेरी टर्मिनल से अनुरोध की गई फ़ाइल का उपयोग करने के लिए प्रोग्राम।

उत्तर

9

का उपयोग करना है ताकि आप अपने कोड के अंदर stdin से पढ़ने की जरूरत है पुनर्निर्देशन stdin के लिए इनपुट फ़ाइल की सामग्री को भेजता है, है, तो कुछ इस तरह (त्रुटि स्पष्टता के लिए छोड़े गए जाँच)

#include <stdio.h> 

#define BUFFERSIZE 100 

int main (int argc, char *argv[]) 
{ 
    char buffer[BUFFERSIZE]; 
    fgets(buffer, BUFFERSIZE , stdin); 
    printf("Read: %s", buffer); 
    return 0; 
} 
0

आप fgets का उपयोग न, आप gets

पुनर्निर्देशन का मतलब सिर्फ इतना है कि, अपने टर्मिनल इनपुट फ़ाइल सामग्री हो जाएगा का उपयोग करें। लेकिन आपका प्रोग्राम नहीं जानता कि यह कहां से आता है, क्योंकि यह ओएस द्वारा किया जाता है।

+2

"उपयोग हो जाता है" कभी सही जवाब नहीं है। एक कारण है कि सी 99 में फ़ंक्शन को हटा दिया गया था और सी 11 में हटा दिया गया था। –

2

1.) तुम पास stdin फिर 2 पर एक अलग फ़ाइल हैंडलर असाइन करें।) किसी भी अन्य फ़ाइल हैंडलर के साथ stdin को प्रतिलिपि बनाएँ जो आप इसे प्राप्त कर सकते हैं

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