मुझे इनपुट फ़ाइल से पढ़ने में परेशानी हो रही है। इनपुट फ़ाइल इसइनपुट फ़ाइल से पढ़ना
लियोनेल मेसी -10 43
फ़र्नांडो टोरेस की तरह दिखता है 9 -29
क्रिस्टियानो रोनाल्डो 7 31
वेन रूनी 10 37
नेमार 17 29
एंड्रेस इनिएस्टा 8 32
रॉबिन वैन पर्सी 19 20
लियोनेल मेसी 10 43
जावी हर्नांडेज़ 6 36
Mesut Özil 10 38
डिडिएर ड्रोग्बा 10 35
फ़र्नांडो टोरेस 9 29
काका 10 17
समस्या यह है कि मैं गेटलाइन फ़ंक्शन का उपयोग नहीं कर सकता क्योंकि मैं नाम को एक सरणी में स्टोर करने के लिए एक चर में स्टोर करना चाहता हूं, और पहले नंबर को एक चर में और दूसरे को दूसरे चर में बदलना चाहता हूं। मैंने भी झुकाव समारोह का उपयोग करने की कोशिश की लेकिन मैंने कभी नहीं सीखा है इसलिए मुझे इसके साथ कोई सफलता नहीं मिली। यदि कोई जानता है कि नाम के अंत तक कैसे पढ़ा जाए और इसे एक वैरिएबल में स्टोर करें जिसे बहुत सराहना की जाएगी।
यह मेरा कोड जब im इनपुट फ़ाइल
while(!fin.eof())
{
fin >> first >> last >> num >> point;
if (num > 0 && point > 0)
{
list[i].firstname = first;
list[i].lastname = last;
list[i].number = num;
list[i].points = point;
i++;
}
else if (num < 0 || point < 0)
{
reject[j].firstname = first;
reject[j].lastname = last;
reject[j].number = num;
reject[j].points = point;
j++;
}
}
यह पूरी तरह से काम करता है, तो इनपुट एक प्रथम नाम और अंतिम नाम है से पढ़ कैसा दिखता है। मुझे पता है कि समस्या फिन >> पहले >> अंतिम >> संख्या >> बिंदु;
लेकिन मैं वास्तव में यकीन है कि कैसे पहली और आखिरी (और संभवतः मध्य) डाल करने के लिए एक साथ
आह, लेकिन आप 'getline' का उपयोग कर सकते हैं। – chris
क्या नाम के हिस्सों के बीच "अंतरिक्ष" समान नाम और संख्याओं के बीच समान है? अगर यह नाम और संख्याओं के बीच एक टैब वर्ण '' t'' 'है तो यह बहुत मदद करेगा। अन्यथा, आप (संभवतः) एक संपूर्ण रेखा को पढ़ना चाहते हैं, और फिर स्ट्रिंग के पीछे से संख्या बिट्स को हटाएं (उदाहरण के लिए 'std :: string :: find_last_of' और' std :: string :: substr' का उपयोग करके) –
हां सभी रिक्त स्थान नाम और संख्याओं के बीच समान हैं। तो पूरी लाइन को एक स्ट्रिंग वेरिएबल में स्टोर करना संभव है, और फिर स्ट्रिंग के अंत से दो संख्याओं को हटा दें और उन्हें अलग-अलग चर में रखें? – kylekolossus