Я предлагаю пользователю ввести длину массива, инициализирую массив char[] этим вводом, а затем предлагаю пользователю ввести сообщение для ввода в массив char[].
Я читаю первый символ сообщения пользователя с getchar()
.
Однако getchar()
считывает escape-последовательность новой строки '\n'
до того, как читает любой пользовательский ввод. Кажется, он получает '\n'
из предыдущего оператора printf
, который предлагает пользователю...
Вот соответствующий код:
#include <stdio.h>
int main(void) {
int len = 0,
originalLen = 0;
printf("\n\nWhat is the length of the array? ");
scanf("%d", &originalLen);
char str[originalLen]; // intitializing the array
printf("Enter a message to enter into the array: ");
char target = getchar();
str[len] = target;
// why is getchar() reading '\n'?
if (target == '\n') {
printf("\n...what happened?\n");
}
return 0;
} // end of main