/ / सी ++ में एक पंक्ति के अंत तक पढ़ना - सी ++, फ़ाइल

सी ++ में एक पंक्ति के अंत तक पढ़ना - सी ++, फ़ाइल

मेरे पास इस तरह एक पाठ फ़ाइल है:

स्टिंग एक और स्ट्रिंग 0 12 0 5 3 8
स्टिंग एक और स्ट्रिंग 8 13 2 0 6 11

और मैं गिनना चाहता हूं कि कितने नंबर हैं। मुझे लगता है कि मेरा सबसे अच्छा दांव गिनती खत्म करने के लिए एक शर्त के साथ टाइप साइकिल का उपयोग करना है, फिर दूसरी पंक्ति शुरू होती है, लेकिन मुझे नहीं पता कि एक पंक्ति के अंत में पढ़ना बंद कैसे किया जाए।

आपकी सहायता के लिए अग्रिम धन्यवाद ;)

उत्तर:

उत्तर № 1 के लिए 11

अपने को विभाजित करें input लाइनों में धारा

std::string line;
while (std::getline(input, line))
{
// process each line here
}

एक पंक्ति को शब्दों में विभाजित करने के लिए, एक स्ट्रिंग का उपयोग करें:

std::istringstream linestream(line); // #include <sstream>
std::string word;
while (linestream >> word)
{
// process word
}

आप यह तय करने के लिए प्रत्येक शब्द के लिए इसे दोहरा सकते हैं कि इसमें कोई संख्या है या नहीं। चूंकि आपने यह निर्दिष्ट नहीं किया है कि क्या आपके नंबर पूर्णांक या गैर-पूर्णांक हैं, मैं मानता हूं int:

std::istringstream wordstream(word);
int number;
if (wordstream >> number)
{
// process the number (count, store or whatever)
}

अस्वीकरण: यह दृष्टिकोण सही नहीं है। यह जैसे शब्दों की शुरुआत में "संख्या" का पता लगाएगा 123abc, यह भी एक इनपुट प्रारूप की तरह अनुमति देगा string 123 string। इसके अलावा यह दृष्टिकोण बहुत कुशल नहीं है।


जवाब के लिए 4 № 2

आप एक का उपयोग क्यों नहीं करते हैं getline()?


उत्तर № 3 के लिए 1

रेखा का अंत "एन" वर्ण द्वारा दर्शाया गया है। "एन" का सामना करते समय अपने लूप को समाप्त होने की स्थिति में रखें