Tôi có một tệp mà tôi đang cố in trên màn hình, nhưng tất cả nó trả về là "0x28fe88", khi tệp đó là 13 cột bởi một vài trăm hàng.C++ Làm cách nào để in một tệp .txt đúng nguyên văn?
#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;
}
Tôi sẽ không đăng mã đầy đủ, nhưng tôi hy vọng nó đủ ngắn để không đảm bảo bắt được flak.
Bạn không in nội dung của tệp bạn đang in đối tượng ifstream. –
'cout << infile1;' * không * in nội dung tệp để xuất chuẩn. Nó đang in ra địa chỉ của đối tượng. – greatwolf
Mã gốc chèn đối tượng luồng vào luồng. Điều đó làm việc bởi vì, trước C++ 11, các lớp luồng (về mặt kỹ thuật, lớp cơ sở 'basic_ios'), có một chuyển đổi thành' void * 'cho biết luồng có ở trạng thái tốt hay không (trả về một con trỏ null nếu nó không và một con trỏ không null khác); hiển thị mã ban đầu là kết quả của toán tử chuyển đổi này. Trong C++ 11 chuyển đổi đó không còn hiện diện; nó được thay thế bằng 'toán tử bool()' rõ ràng, phục vụ cùng một mục đích mà không đưa ra các chuyển đổi bí ẩn trong các ngữ cảnh không logic. –