При вводе символьного массива на языке СИ происходит нечто странное

#include <stdio.h>
#include <conio.h>
 
 
int main()
{
    const int N = 5;
    char mas[N];
    int i;
    
    for (i = 0; i < 5; i++)        //Заполнение массива c клавиатуры
    {
        printf("mas[%d] = ", i);
        scanf("%c", &mas[i]);
    }
    
    for (i = 0; i < N; ++i)             // Вывод массива на экран
        printf("%c", mas[i]);
    
    
    return 0;
}

введите сюда описание изображения

Что тут не так?


Ответы (1 шт):

Автор решения: AlexGlebe

После scanf буквы остаётся в буфере конец строки. Этот буфер надо очистить.

scanf("%c", &mas[i]);
while(getc(stdin)!='\n');
→ Ссылка