我有一个文件,我试图打印到屏幕上,但它返回的是“0x28fe88”,当文件本身是13列,几百行。
#include <iostream>
#include <fstream>
#include <istream>
#include <ostream>
#include <cstdlib>
using namespace std;
int main()
{
//Opens .txt file
ifstream infile1;
infile1.open("Taylor.txt");
//Fail check
if(infile1.fail())
{
cout << "File failed to open.\n";
exit(1);
}
//Prints file to screen (not correctly)
cout << infile1;
//Closes file
infile1.close();
return 0;
}
否则我不会发布完整的代码,但我希望它足够短,不能保证捕捉高射炮。
答案 0 :(得分:10)
要打印出文本文件,请使用此cout << infile1.rdbuf();
,因为现在您正在打印指向文件的指针。
编辑: 如果这对你不起作用,那么最接近它的就是逐个字符地读取文件。还有其他方法可以使用字符串,但这段代码可以正常使用:
while(infile1.good())
cout << (char)infile1.get();
它读取字符代码,同时文件很好阅读并立即将其转换为char(可能需要对UNICODE进行一些修改)并将其打印出来。