फ़ाइल को बाइनरी मोड में खोलें, और डिस्क पर "अनफॉर्मेटेड" डेटा लिखें।
fstream myFile;
...
myFile.open ("mydata.bin", ios:: in | ios::out | ios::binary);
...
class Data {
int key;
double value;
char[10] desc;
};
Data x;
myFile.seekp (location1);
myFile.write ((char*)&x, sizeof (Data));
संपादित करें: ओपी ने कहा "आउटपुट डेटा टेक्स्ट प्रारूप में होना चाहिए, चाहे टैब या अल्पविराम अलग हो।" बाधा।
यदि आपका एप्लिकेशन सीपीयू बाध्य है, तो आउटपुट का स्वरूपण एक ओवरहेड है जिसकी आपको आवश्यकता नहीं है। बाइनरी डेटा एसीआईआई से लिखने और पढ़ने के लिए बहुत तेज़ है, डिस्क पर छोटा है (उदाहरण के लिए एसीआईआई की तुलना में द्विआधारी के साथ लिखे गए कुल बाइट्स हैं), और क्योंकि यह छोटा है, नेटवर्क के चारों ओर स्थानांतरित करना तेज़ है (नेटवर्क घुड़सवार समेत फाइल सिस्टम)। सभी संकेतक बाइनरी को एक अच्छा समग्र अनुकूलन के रूप में इंगित करते हैं।
बाइनरी डेटा देखना एक साधारण उपयोगिता के साथ चलाने के बाद किया जा सकता है जो डेटा को किसी भी प्रारूप में एसीआईआई को डंप करेगा। मैं कुछ संस्करण जानकारी को परिणामी द्विआधारी डेटा में जोड़ा जाएगा ताकि यह सुनिश्चित किया जा सके कि डेटा के प्रारूप में परिवर्तन डंप उपयोगिता में संभाला जा सके।
बाइनरी से एएससीआई तक चलना, और उसके बाद printf बनाम iostreams के सापेक्ष प्रदर्शन पर quibbling संभवतः आपके समय का सबसे अच्छा उपयोग नहीं है।
स्रोत
2010-03-04 14:48:51
प्रोफाइलिंग में क्या गलत है? या आपके मामले में, बस समय? –
कुछ भी नहीं, शुरुआती बिंदु की आवश्यकता के अलावा। –
डिस्क आईओ को अधिकतम करने में शामिल सूक्ष्मता का एक बड़ा हिस्सा, संभवतः प्रोफाइलिंग करने वाले लोगों से कुछ कागजात पढ़ने के लिए बेहतर है। –