2017-02-19 16 views
-1

Я пытаюсь написать простой код.c программирование введите символ для цикла

Я должен ввести 10 букв, используя getchar и после печати самый маленький.

Ex. «A» - 65 в ASCII, и если я вхожу в «A», он должен напечатать, что «A» наименьшее.

Я сделал первую часть, в которой мне нужно вводить буквы, и что-то в моей петле цикла прерывается.

Это мой код:

#include <stdio.h> 

int main(void) 
{ 
    char ch; 
    int i; 

    for(i=0; i<10; i++) { 
     ch = getchar; 
     printf("You entered : %c\n", ch); 
    } 

    return 0; 
} 

С помощью программы я получаю это пять раз:

a 
You entered : a 
You entered : 
+0

Просьба включить код и результаты как часть ваших вопросов. Ссылки могут со временем стать недействительными, а их исчезновение сделает этот вопрос полностью нечитаемым. –

+0

Прошу прощения, я новичок на этой странице. Как мне это сделать ?? –

+0

Если вы отредактируете свой ответ, вы можете вставить фрагменты кода. Для этого есть опция рядом со всеми другими инструментами форматирования, где вы можете выбрать любой текст, который будет отформатирован как код. Просто вставьте код из изображений и используйте форматировщик –

ответ

0

Это не совсем понятно, что вы спрашиваете, я предполагаю, что вам интересно, почему ваша программа останавливается после того, что кажется 5 итерациями, и почему вы получаете пустой лишний You entered:.

Это связано с тем, как работает getchar(). Когда вы вводите charecter и нажимаете Enter, вы фактически вводите что-то вроде a\n. В первый раз, когда getchar запускает его, он захватывает a, и во второй раз он захватывает n (новая строка) с двумя итерациями. Как только он это сделает, он ждет, пока вы введете больше, потому что он потребляет весь доступный ему вход.

Одним из решений вашей проблемы является использование дополнительного getchar() после ch = getchar(), что вы не назначаете ничего, чтобы потреблять дополнительную строку новой строки.

Подробнее об этом можно узнать in this question.

 Смежные вопросы

  • Нет связанных вопросов^_^