पर कचरा चरित्र के साथ स्ट्रिंग सरणी मेरे पास एक चार सरणी बफर है जिसका उपयोग मैं उन अक्षरों को संग्रहीत करने के लिए कर रहा हूं जो उपयोगकर्ता एक-एक करके इनपुट करेंगे। काम करता है नीचे दी गई मेरी कोड लेकिन कुछ खामियों है कि मैं समझ नहीं है:स्ट्रिंग सरणी
- जब मैं एक printf निष्पादित क्या बफर में है देखने के लिए, यह भरने करता है, लेकिन मैं अंत में कचरा पात्रों मिल
- यह चार बफर [8] के रूप में घोषित किए जाने के बावजूद 8 वर्णों पर नहीं रुकेंगे;
क्या कोई मुझे बता सकता है कि क्या हो रहा है और शायद मैं इसे कैसे ठीक कर सकता हूं? धन्यवाद।
char Buffer[8]; //holds the byte stream
int i=0;
if (/* user input event has occurred */)
{
Buffer[i] = charInput;
i++;
// Display a response to input
printf("Buffer is %s!\n", Buffer);
}
आउटपुट:
tagBuffer is 1┬┬w! tagBuffer is 12┬w! tagBuffer is 123w! tagBuffer is 1234! tagBuffer is 12345! tagBuffer is 123456=! tagBuffer is 1234567! tagBuffer is 12345678!
tagBuffer 123456789 है!
बहुत बढ़िया। धन्यवाद। हालांकि एक सवाल हालांकि: बफर का बिंदु क्या है [8]? – Steve
बफर [8] आपके सरणी के लिए 8 बाइट्स मेमोरी को अलग करने के लिए कंपाइलर को बताता है। आपकी स्ट्रिंग इस से छोटी हो सकती है (उदाहरण के लिए "बफर [4] = 0;" करके) लेकिन यह लंबे समय तक नहीं हो सकता है (या नहीं)। –
बफर [8] 7 वर्णों और एक टर्मिनेटर के लिए एक बफर है ;-)। –