gpt4 book ai didi

c++ - 将输出重定向到文件,然后返回到C++中的控制台

转载 作者:行者123 更新时间:2023-12-02 10:10:20 25 4
gpt4 key购买 nike

任务是从input.txt读取输入,并将输出写入output.txt
但是,完成上述任务后,现在应在控制台上显示更多说明/输出。
来了解c++中的freopen(),它对于给定任务的前半部分工作正常。但是不幸的是,我不知道如何再次将输出重定向回控制台。

void writeIntoFile(){

freopen("input.txt","r",stdin); // Task 1. Reading from input.txt file
freopen("output.txt","w",stdout); // Task 2. Writing to output.txt file
printf("This sentence is redirected to a file.");
fclose(stdout);
printf("This sentence is redirected to console"); // Task 3. Write further output to console

}
我对fclose()的期望是最终将其写入文本文件,并因此将输出进一步写入控制台,但事实并非如此。我也该如何完成任务3。

最佳答案

可能您正在寻找的是doomista在评论中提到的rdbuf()。
这是重定向输出的一种方法。

#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;
}

关于c++ - 将输出重定向到文件,然后返回到C++中的控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63879541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com