У меня есть буфер массива char, который я использую для хранения символов, которые пользователь будет вводить один за другим. Мой код ниже работает, но имеет несколько сбоев, которые я не могу понять:
- когда я выполняю printf, чтобы увидеть, что в буфере, он заполняется, но я получаю символы мусора в конце
- он не останавливается на 8 символов, несмотря на то, что объявлен как char Buffer [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!