Reading a string in C++ using scanf -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 2 जवाब

मैं एक पढ़ने की कोशिश कर रहा हूँ Scanf का उपयोग करके सी ++ में स्ट्रिंग मैंने कोशिश की

  चार सीएमडी [40]; Scanf ("% s", सीएमडी); स्ट्रिंग स्ट्र (सीएमडी);  

लेकिन यह मुझे एक स्ट्रिंग प्राप्त कर लेता है जो मेरे पास कुछ गैर-भावुक अक्षरों को प्राप्त करना है।

scanf से % s निर्दिष्टकर्ता इनपुट स्ट्रिंग के बाद एक नल टर्मिनेटर संग्रहीत करेगा जो कचरा अक्षर को स्ट्रिंग में आने से रोकता है ... जब तक कि आपके कोड ने अपरिभाषित व्यवहार किया है।

आपकी समस्या यह है कि इनपुट बफ़र से बह निकला है, जिसके परिणामस्वरूप अपरिभाषित व्यवहार; किसी उपयुक्त बफर आकार के बिना % s निर्दिष्टकर्ता का उपयोग करते समय scanf बफर की सीमा से बाहर लिख सकता है उस बिंदु पर आपको इस बात की कोई गारंटी नहीं है कि कार्यक्रम किस प्रकार व्यवहार करेगा।

कभी भी % s के साथ scanf का उपयोग बफर आकार प्रदान नहीं करने के लिए करें:

<प्री> चार सीएमडी [40]; Scanf ("% 39s", सीएमडी); स्ट्रिंग स्ट्र (सीएमडी);

Comments

Popular posts from this blog

c# - Reactive Extensions ControlScheduler -

multithreading - Reorderings in java memory model -

java - Add color code support to a Bukkit plugin -