Задача - написать небольшую программу для вводного курса программирования, где "#" выводятся на терминал в зависимости от ввода целых чисел и выполняются при вводе символа EOF. Выглядит ужасно, но работает нормально, за исключением случаев, когда вводится 1 или 0, а сразу после желаемого вывода выводится буква «D», и я понятия не имею, почему или как это возможно.
Я попытался поиграться в массиве, который используется для хранения входных данных для выполнения, и там нет "D". Там нет "D" нигде. Пока что это не происходит с другими входами.
int main()
{
int n = 0;
int index = 0;
int field[2000] = {};
int length = 0;
while (1)
{
int check = scanf("%d", &n);
if (check == EOF)
{
break;
}
field[index] = n;
index += 1;
length += 1;
}
for (int i = 0; i < length ; i++)
{
if (field[i] == 0)
{
printf(" ");
}
else
{
for(int j = 0; j < field[i]; j++)
{
printf("#");
}
}
printf("\n");
}
return 0;
}
Я ожидал, что будет выведен один символ "#" или пробел, никаких других символов ни при каких обстоятельствах.