मुझे फ़ाइल से डेटा पढ़ने में थोड़ी सी समस्या है। मैं wstring के पढ़ने के साथ-साथ मनमाने ढंग से आकार के कच्चे डेटा के एक हिस्से के रूप में पढ़ने में सक्षम होना चाहता हूं (आकार बाइट्स में है)।मैं wfstream से बाइनरी डेटा कैसे पढ़ सकता हूं?
std::wfstream stream(file.c_str());
std::wstring comType;
stream >> comType;
int comSize;
stream >> comSize;
char *comData = new char[comSize];
memset(comData, 0, comSize);
stream.read(comData, comSize);
//error C2664 : 'std::basic_istream<_Elem,_Traits>::read'
// : cannot convert parameter 1 from 'char *' to 'wchar_t *'
शायद मैं गलत धाराओं या उन पंक्तियों के साथ कुछ उपयोग कर रहा हूं। असल में, मैं एक wstring, डेटा के आकार का आकार (जो बाइट्स की संख्या हो सकती है) पढ़ना चाहते हैं, उसके बाद घटक डेटा के कई बाइट्स। जाहिर है, मैं char को नहीं पढ़ सकता क्योंकि टेम्पलेट wchar_t का मानता है।
मैं wchar_t को पढ़ सकता हूं लेकिन फिर मुझे यह सुनिश्चित करना होगा कि डेटा आकार (wchar_t) द्वारा गठबंधन के रूप में संग्रहीत किया गया हो। अन्यथा, मैं धारा को दूषित कर सकता हूं। एक परिदृश्य तब होगा जब डेटा 15 बाइट्स होगा। मुझे 16 बाइट्स पढ़ना होगा, फिर अनचाहे बाइट मास्क करना होगा, अगले डेटा खंड को पढ़ने में सक्षम होने के लिए स्ट्रीम को 15 बाइट ऑफसेट (यदि संभव हो तो wchar_t templated?) के लिए स्ट्रीम की तलाश करें।
स्पष्ट रूप से, जो मैं करने की कोशिश कर रहा हूं उसे प्राप्त करने का एक अच्छा तरीका होना चाहिए।
क्या यह सिर्फ मुझे है या किसी और ने डब्ल्यूटीएफस्ट्रीम भी पढ़ा है? :-) – VVS