c++ - fstream replace portion of a file -


जब मैं करता हूँ

  fstream someFile ("something.dat", आईओएस :: बाइनरी | ios :: बाहर); SomeFile.seekp (कुछ स्थान, आईओएस :: बेख); SomeFile.write (कुछ डेटा, 100);  

ऐसा लगता है कि पूरी फ़ाइल को केवल 100 बाइट्स की बजाय 100 बाइट्स के साथ प्रतिस्थापित करना है, जैसे कि मैंने IOS :: trunc को निर्दिष्ट किया था। क्या फाइल को छोटा नहीं करने का एक पोर्टेबल तरीका है?

संपादित करें: आईओएस जोड़ना: इसमें चाल करना लगता है, यह क्यों आवश्यक है, और यह मानक व्यवहार?

संपादित करें # 2: मैं मौजूदा फ़ाइल में जोड़ने की कोशिश नहीं कर रहा हूं मुझे बाकी बाधाओं को छोड़कर 100 बाइट्स को बदलने की ज़रूरत है।

आप जोड़ झंडे चाहते हैं, आईओएस: : ऐप, अगर आप फ़ाइल के अंत में लिखना चाहते हैं।

फाइल के मध्य में कहीं न कहीं ऐसा करने के लिए, आपको सही जगह की तलाश करना है आप इसे बाहर और बाहर के लिए फ़ाइल खोलकर कर सकते हैं, लेकिन अगर मैं आप थे तो मैं एक अस्थायी फ़ाइल बनाऊंगा, इनपुट को कॉपी करने, अपने नए डेटा को लिखने, बाकी को ईओफ़ की प्रतिलिपि बनाएं, फाइल बंद करें और पिछली जगह को बदलें अस्थायी फ़ाइल के साथ संस्करण इसे "मास्टर फ़ाइल अपडेट" कहा जाता है।


Comments

Popular posts from this blog

python - Overriding the save method in Django ModelForm -

html - CSS autoheight, but fit content to height of div -

qt - How to prevent QAudioInput from automatically boosting the master volume to 100%? -