Я пытаюсь написать фрагмент кода, который запрашивает ввод пользователя для ввода имени. Затем он должен читать каждый символ своего имени и форматировать его, но я выбираю (в коде ниже он добавляет новую строку после каждого символа).Почему первая буква моей строки не печатается?
Проблема, с которой я сталкиваюсь, - это когда кто-то печатает свое имя, он не печатает первую букву, а распечатывает остальную.
Например, если бы я набрал Sneek, он отображает только neek.
Теперь я начинаю программировать и тем более с C, поэтому мне было интересно, есть ли проблема с моей инструкцией scanf или циклом.
Кроме того, если я набираю Sneek, он отображает neek, но если я снова наберу Sneek, он отобразит его как Sneek, поэтому я предполагаю, что в петле нет ничего плохого?
Я искал довольно долгое время по этому вопросу, но я не могу найти ответы, любая помощь будет высоко оценена.
char ch;
printf("Please enter name: ");
ch = scanf("%c", &ch);
while ((ch = getchar()) != EOF) {
printf("%c\n", ch);
}
return 0;
http://stackoverflow.com/questions/35356322/difference-between-int-and-char-in-getchar-fgetc-and-putchar-fputc – Lundin
'getchar' преднамеренно возвращает' int', не 'char'! 'ch = scanf (..., & ch)' просто неправильно.Прочтите документацию о функциях, которые вы используете! – Olaf