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ş:
İyi bir metin okumak için Java dosya y...
Bir ağaca doğru düz bir masa ayrıştırm...
SVN silinmiş bir dosya geri yüklemek i...
Eğer bir dosya C içinde olup olmadığın...
Bash PATH değişkeni $bir yolu kaldırma...