Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

I/O पुनर्निर्देशन C++ . में

सी में, हम पुनर्निर्देशन उद्देश्यों के लिए फ्रीपेन () फ़ंक्शन का उपयोग कर सकते हैं। इस फ़ंक्शन का उपयोग करके, हम मौजूदा FILE पॉइंटर को किसी अन्य स्ट्रीम पर रीडायरेक्ट कर सकते हैं। फ़्रीओपन का सिंटैक्स नीचे जैसा है:

FILE *freopen(const char* filename, const char* mode, FILE *stream)

C++ में भी हम Redirection कर सकते हैं। सी ++ में, धाराओं का उपयोग किया जाता है। यहां हम अपने स्वयं के स्ट्रीम का उपयोग कर सकते हैं, और सिस्टम स्ट्रीम को पुनर्निर्देशित भी कर सकते हैं। C++ में, तीन प्रकार की धाराएँ होती हैं।

  • आईस्ट्रीम :स्ट्रीम, जो केवल इनपुट का समर्थन कर सकती है
  • ओस्ट्रीम :स्ट्रीम, जो केवल आउटपुट का समर्थन कर सकती है
  • iostream :इनका उपयोग इनपुट और आउटपुट के लिए किया जा सकता है।

ये क्लासेस और फाइल स्ट्रीम क्लासेस ios और स्ट्रीम-बफ क्लास से ली गई हैं। तो thefilestream और IO स्ट्रीम ऑब्जेक्ट समान व्यवहार करते हैं। C ++ स्ट्रीम बफर को किसी भी स्ट्रीम पर सेट करने की अनुमति देता है। तो हम रीडायरेक्ट के लिए स्ट्रीम से जुड़े स्ट्रीमबफर को आसानी से बदल सकते हैं। उदाहरण के लिए, यदि दो धाराएँ A और B हैं, और हम स्ट्रीम A को स्ट्रीम B पर पुनर्निर्देशित करना चाहते हैं, तो हमें इन चरणों का पालन करना होगा:

  • स्ट्रीम बफर ए प्राप्त करें, और इसे स्टोर करें
  • स्ट्रीम बफ़र A को दूसरे स्ट्रीम बफ़र B पर सेट करें
  • स्ट्रीम बफर A को उसकी पिछली स्थिति (वैकल्पिक) पर रीसेट करें

उदाहरण कोड

#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int main() {
   fstream fs;
   fs.open("abcd.txt", ios::out);
   string lin;
   // Make a backup of stream buffer
   streambuf* sb_cout = cout.rdbuf();
   streambuf* sb_cin = cin.rdbuf();
   // Get the file stream buffer
   streambuf* sb_file = fs.rdbuf();
   // Now cout will point to file
   cout.rdbuf(sb_file);
   cout << "This string will be stored into the File" << endl;
   //get the previous buffer from backup
   cout.rdbuf(sb_cout);
   cout << "Again in Cout buffer for console" << endl;
   fs.close();
}

आउटपुट

Again in Cout buffer for console

abcd.txt

This string will be stored into the File

  1. सी ++ स्ट्रीम क्लास स्ट्रक्चर

    C++ स्ट्रीम में प्रोग्राम थ्रेड और i/o के बीच स्थानांतरित वर्णों की धारा को संदर्भित करता है। स्ट्रीम कक्षाएं सी ++ में फाइलों और आईओ उपकरणों पर इनपुट और आउटपुट ऑपरेशंस के लिए उपयोग किया जाता है। इन वर्गों में विशिष्ट विशेषताएं हैं और कार्यक्रम के इनपुट और आउटपुट को संभालने के लिए। iostream.h पुस्

  1. फिक्स:qBittorrent I/O त्रुटि

    qBittorrent एक मुफ़्त, क्रॉस-प्लेटफ़ॉर्म और ओपन-सोर्स बिटटोरेंट क्लाइंट और μTorrent का एक विकल्प है। यह Qt टूलकिट पर आधारित C++ में लिखा गया है और इसे स्वयंसेवकों द्वारा विकसित किया गया है। हालांकि, कई उपयोगकर्ता रिपोर्ट कर रहे हैं कि उन्हें एक I/O त्रुटि हुई या I/O त्रुटि:अनुमति अस्वीकृत मिल रही है

  1. Oracle 11g I/O अंशांकन अवलोकन

    हर बार जब कोई Oracle ® डेटाबेस डिस्क पर डेटा पढ़ता या लिखता है, तो डेटाबेस डिस्क इनपुट और आउटपुट (I/O) संचालन उत्पन्न करता है। कई सॉफ़्टवेयर अनुप्रयोगों का प्रदर्शन डिस्क I/O द्वारा सीमित होता है, और अनुप्रयोग जो I/O गतिविधि के पूरा होने की प्रतीक्षा में अधिकांश केंद्रीय प्रसंस्करण इकाई (CPU) समय व्