Ekrana yazdırmaya çalıştığım bir dosyam var, ancak dosyanın kendisi bir çift yüz satırda 13 sütun olduğunda "0x28fe88" değeri döndürülüyor.C++ Bir .txt dosyasını nasıl yazdırabilirim?
#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;
}
başka türlü tam kod sonrası olmaz, ama uçaksavar yakalamak garanti etmez kadar kısa olduğunu umuyoruz.
ifstream nesnesini yazdırdığınız dosyanın içeriğini yazdırmıyorsunuz. –
'cout << infile1;' * dosya içeriğini stdout'a yazdırmaz. Nesne adresini yazdırıyor. – greatwolf
Orijinal kod, bir akış nesnesini bir akışa ekler. Bunun nedeni, C++ 11'den önce, akış sınıflarının (teknik olarak, temel "basic_ios" temel sınıfı), akışının iyi durumda olup olmadığını belirten "void *" dönüşümü vardır (eğer değilse, boş gösterici döndürür) ve sıfır olmayan bir işaretçi aksi halde); Orijinal kod görüntüsü bu dönüşüm operatörünün sonucudur. C++ 11'de dönüşüm artık mevcut değildir; yerine, boolean olmayan bağlamlarda gizemli dönüşümler getirmeden aynı amaca hizmet eden "açık operatör bool()" ile değiştirilmiştir. –