5

我有一个文件要打印到屏幕上,但它返回的只是“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;
}

否则我不会发布完整的代码,但我希望它足够短,不会引起抨击。

4

1 回答 1

10

要打印出文本文件,请使用 this cout << infile1.rdbuf();,因为现在您正在打印指向文件的指针。

编辑:如果这对您不起作用,最接近的方法是逐个字符地读取文件。还有其他使用字符串的方法,但这段代码就可以了:

while(infile1.good()) 
    cout << (char)infile1.get();

它在文件易于阅读时读取字符代码,并立即将其转换为字符(可能需要对 UNICODE 进行一些修改)并打印出来。

于 2013-08-13T20:35:31.483 回答