kullanacak şekilde dönüştürme Bir dosya akışından veri okuyan C++ sınıflarım var. Fonksiyonlar böyle görünüyor.C++ dosya akışı işlevini bir stringstream
bool LoadFromFile(class ifstream &file);
Dosya yerine bellekten okumak için yeni bir işlev oluşturuyorum. Bu yüzden etrafta dolaştım ve bir düsünce kodda herhangi bir değişiklik yapmadan hile yapmak gibi görünüyor.
bool LoadFromData(class istringstream &file);
Şimdi sorum sorum. Bir char dizisinden okumak için bu akışı oluşturmam gerekiyor. Dize boş sonlandırılmadı, saf ikili veri ve boyutuna sahip bir tamsayı var. Bir dizgeye atamayı ve bir dizeden bir akış oluşturmayı denedim, ancak dize boş bir karakterden sonra sona erer .. ve veriler kopyalanır.
int size;
char *data;
string s = *data;
nasıl işaretçi verilerin boyutunu belirterek + verileri kopyalamadan bir karakter dizisi pointer bir dize oluşturulur? Bir stringstream'den başka bir çözüm biliyor musunuz?
Yani, açıklama: senin 'karakter *' boş sonlandırılmış olmadığını Sorununuz var mı ve bu nedenle sorun bunun dışında bir 'std :: string' inşa yaşıyorsanız) ... akışları? – quasiverse
Evet, temelde sorun bu. Ayrıca, daha iyi bir çözümün olup olmadığını merak ediyorum. – Tito
İşte çözüm şu olabilir: http://stackoverflow.com/questions/2079912/simpler-way-to-create-ac-memorystream-from-char-size-t-without-copying-th (bir sürüm Verileri kopyalar ve sadece gcc ile çalışır) –