मैंने एक बार फ़ाइल के माध्यम से लाइनों की संख्या को खोजने के लिए पढ़ा है, फिर इसे फिर से पढ़ें ताकि मैं प्रत्येक पंक्ति के कुछ डेटा को सरणी में संग्रहीत कर सकूं। फाइल को दोबारा बंद करने और इसे खोलने से दो बार पढ़ने का बेहतर तरीका है? यहां मुझे जो मिला है, लेकिन मुझे डर है कि यह अक्षम है।एक ही फ़ाइल को पंक्ति में दो बार पढ़ने के लिए
int numOfMappings = 0;
ifstream settingsFile("settings.txt");
string setting;
while(getline(settingsFile, setting))
{
numOfMappings++;
}
char* mapping = new char[numOfMappings];
settingsFile.close();
cout << "numOfMappings: " << numOfMappings << endl;
settingsFile.open("settings.txt");
while(getline(settingsFile, setting))
{
cout << "line: " << setting << endl;
}
SInce आप C++ का उपयोग कर रहे हैं, तो आप किसी सरणी के बजाय 'वेक्टर' का उपयोग कर सकते हैं: http://www.cplusplus.com/reference/vector/ – Patashu
जानकारी संग्रहीत करने के लिए 'वेक्टर <> 'का उपयोग क्यों न करें जैसा कि आप इसे फ़ाइल से पहली बार पढ़ते हैं - वेक्टर स्वचालित रूप से आकार बदल जाएगा क्योंकि इसे और अधिक स्मृति की आवश्यकता है। –
एक नज़र डालें [यहां] (http://en.cppreference.com/w/cpp/io/basic_ostream/seekp)। शायद [यहां] (http://en.cppreference.com/w/cpp/io/basic_istream/seekg) वास्तव में। – ChiefTwoPencils