在控制台C++上打印文本文件的内容
我试图将文件的内容打印到控制台,但它显示的是地址。请帮帮我(另外,请提出另一种方式而不是std::cout,因为我们在课堂上没有研究过,我不明白,但我想我应该使用它)。
这是代码:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
ifstream f("board.txt");
if(f.is_open())
{
cout<<f;
}
else{
cout<<"ERROR:no file opened.";
}
}
回答
没有标准重载operator<<直接使用流来输出该流的内容。
输出整个文件的天真解决方案是在循环中读取输入流的内容,并逐条输出 -
但是有一个operator<<重载需要一个流缓冲区,您可以通过该rdbuf函数获得它:
std::cout << f.rdbuf();
这应该写入文件的所有内容。