假设文件 output.txt 能正常打开,下面代码通过 rdbuf 将 cout 的输出重定向到了文件中。
ofstream fout("output.txt");
streambuf* old_buf = cout.rdbuf();
cout.rdbuf(fout.rdbuf());
cout << "GESP Exam";
cout.rdbuf(old_buf);
正确答案:正确(√)
ofstream fout("output.txt");
streambuf* old_buf = cout.rdbuf();
cout.rdbuf(fout.rdbuf());
cout << "GESP Exam";
cout.rdbuf(old_buf);
正确答案:正确(√)
cout.rdbuf(fout.rdbuf()) 把 cout 的缓冲区换成文件的,于是 "GESP Exam" 被写入文件,最后还原缓冲区。重定向确实生效,说法正确,选 √。💡 cout.rdbuf 替换流缓冲区是经典的输出重定向技巧。想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?
进入 GESPPASS 开始练习