software - c++ tutorial



কিভাবে cin এবং cout ফাইল পুনঃনির্দেশিত? (4)

কিভাবে আমি cin in.txt cout এবং out.txt কে cout করতে out.txt ?

https://src-bin.com


Answer #1

আপনার কম্পাইল প্রোগ নাম অনুমান x.exe এবং $ শেল বা প্রম্পট $

$ x <infile >outfile 

infile থেকে ইনপুট নিতে হবে এবং Outfile আউটপুট হবে।


Answer #2

এখানে আপনি যা করতে চান তার একটি কার্যকর উদাহরণ। কোড প্রতিটি লাইন কি জানেন তা পড়ুন। আমি gcc 4.6.1 সঙ্গে আমার পিসি এটি পরীক্ষা করেছি; এটা জরিমানা কাজ করে।

#include <iostream>
#include <fstream>
#include <string>

void f()
{
    std::string line;
    while(std::getline(std::cin, line))  //input from the file in.txt
    {
        std::cout << line << "\n";   //output to the file out.txt
    }
}
int main()
{
    std::ifstream in("in.txt");
    std::streambuf *cinbuf = std::cin.rdbuf(); //save old buf
    std::cin.rdbuf(in.rdbuf()); //redirect std::cin to in.txt!

    std::ofstream out("out.txt");
    std::streambuf *coutbuf = std::cout.rdbuf(); //save old buf
    std::cout.rdbuf(out.rdbuf()); //redirect std::cout to out.txt!

    std::string word;
    std::cin >> word;           //input from the file in.txt
    std::cout << word << "  ";  //output to the file out.txt

    f(); //call function


    std::cin.rdbuf(cinbuf);   //reset to standard input again
    std::cout.rdbuf(coutbuf); //reset to standard output again

    std::cin >> word;   //input from the standard input
    std::cout << word;  //output to the standard input
}

আপনি কেবলমাত্র একটি লাইনে সংরক্ষণ এবং পুনঃনির্দেশ করতে পারেন:

auto cinbuf = std::cin.rdbuf(in.rdbuf()); //save and redirect

এখানে std::cin.rdbuf(in.rdbuf()) std::cin's buffer in.rdbuf() এবং তারপর std::cin সাথে যুক্ত পুরানো বাফারটি ফেরত দেয়। std::cout - বা যে কোনও স্ট্রিমের সাথে একই কাজ করা যেতে পারে।

আশা করি এইটি কাজ করবে.


Answer #3

শুধু লেখো

#include <cstdio>
#include <iostream>
using namespace std;

int main()
{
    freopen("output.txt","w",stdout);
    cout<<"write in file";
    return 0;
}

Answer #4

ফাইল cout পুনঃনির্দেশিত করার চেষ্টা করুন।

#include <iostream>
#include <fstream>

int main()
{
    /** backup cout buffer and redirect to out.txt **/
    std::ofstream out("out.txt");

    auto *coutbuf = std::cout.rdbuf();
    std::cout.rdbuf(out.rdbuf());

    std::cout << "This will be redirected to file out.txt" << std::endl;

    /** reset cout buffer **/
    std::cout.rdbuf(coutbuf);

    std::cout << "This will be printed on console" << std::endl;

    return 0;
}

সম্পূর্ণ নিবন্ধ পড়ুন cd এবং cout পুনঃনির্দেশ করার জন্য std :: rdbuf ব্যবহার করুন





c++