SORU
12 EKİM 2008, Pazar


Çok zarif bir metin okumanın yolu c ile dosya nedir ?

C std::string bir nesne için bir metin dosyasına tüm içeriğini okumak istiyorum .

Python ile yazabilirim:

text = open("text.txt", "rt").read()

Çok sade ve şık. Bilmek istiyorum o kadar çirkin şeylerden nefret ederim, bir metin okumak için en zarif yolu nedir C ile dosya ? Teşekkürler.

CEVAP
12 EKİM 2008, Pazar


Sizin için en şık olan birçok yol, sen seç.

Char* okuma:

ifstream file ("file.txt", ios::in|ios::binary|ios::ate);
if (file.is_open())
{
    file.seekg(0, ios::end);
    size = file.tellg();
    char *contents = new char [size];
    file.seekg (0, ios::beg);
    file.read (contents, size);
    file.close();
    //... do something with it
    delete [] contents;
}

Std::string:

std::ifstream in("file.txt");
std::string contents((std::istreambuf_iterator<char>(in)), 
    std::istreambuf_iterator<char>());

Vektör<char>:

std::ifstream in("file.txt");
std::vector<char> contents((std::istreambuf_iterator<char>(in)),
    std::istreambuf_iterator<char>());

Dizeye, stringstream kullanarak:

std::ifstream in("file.txt");
std::stringstream buffer;
buffer << in.rdbuf();
std::string contents(buffer.str());

file.txt sadece bir örnek, her şey ikili dosyaları için çalışıyor, ios kullandığınızdan emin olun::ifstream yapıcı ikili.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Just So

    Just So

    3 HAZİRAN 2007
  • Madeon

    Madeon

    31 Ocak 2010
  • Phymec

    Phymec

    18 Temmuz 2009