سؤال

انا افرا iststream :: الحصول على والشك لا يزال معلقة. دعنا نقول حساسي هو في الواقع الشخصية " 0" null، ماذا يحدث في هذه الحالة؟ من ما قرأته:

If the delimiting character is found, it is not extracted from the input sequence and remains as the next character to be extracted. Use getline if you want this character to be extracted (and discarded). The ending null character that signals the end of a c-string is automatically appended at the end of the content stored in s.

السبب في أنني أفضل "الحصول على" حول "Readline" هو بسبب القدرة على استخراج دفق الحرف في "Streambuf".

هل كانت مفيدة؟

المحلول

إذا كان لديك شيء من هذا القبيل، فلن تتعثر محدد في دفق الإدخال:

std::string read_str(std::istream & in)
{
        const int size  = 1024;
        char pBuffer[size];
        in.getline(pBuffer, size, '\0');
        return std::string(pBuffer);
}

مجرد مثال إذا كان لديك " 0" كمحدد وسلاسل ليست أكبر من 1024 بايت.

نصائح أخرى

أنا لا أحصل على مشكلتك.

على موقع MSDN، للحصول على وظيفة Get، تقول:

في جميع الحالات، لا يتم استخراج المحدد من دفق ولا يتم إرجاعه بواسطة الوظيفة. وظيفة GetLine، في المقابل، مقتطفات ولكن لا تخزن المحدد. في جميع الحالات، لا يتم استخراج المحدد من دفق ولا يتم إرجاعه بواسطة الوظيفة. وظيفة GetLine، في المقابل، مقتطفات ولكن لا تخزن المحدد.

http://msdn.microsoft.com/en-us/library/aa277360(VS.60).aspx.

لا أعتقد أن لديك مشكلة، لأن موقع MSDN يخبر أن الحلمين لا يتم استخراجه من الدفق، ولا إرجاع VY الوظيفة.

أو ربما أفتقد نقطة هنا؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top