Я хочу создать программу, которая обрабатывает ввод пользователя, а точнее типизированные косые черты («/»). Я использовал переменную, чтобы считать их. Проблема в том, что она говорит «ошибка». каждый раз, когда я делаю правильный ввод, в этом случае 2 слэша (//).Обработка ввода с использованием while в c
ЭТО РАБОТАЕТ
Вставьте строку: //
ок.
ЭТО НЕ РАБОТАЕТ
Вставьте строку: ///
ошибку.
Вставить строку: //
ошибка. - должно быть «хорошо». Почему он говорит об ошибке?
Я использовал для отладки моей программы и обнаружил, что приложение никогда не завершает цикл while, поэтому оно не знает конечного значения количества косой черты. Я прошу о помощи.
char input[50];
int slash_count = 0;
int i;
printf("Insert a string: ");
scanf("%s", input);
for(i=0; i<strlen(input); i++)
{
if (input[i] == '/')
{
slash_count++;
}
}
while (slash_count != 2)
{
printf("error.\n");
printf("Insert a string: ");
scanf("%s", input);
}
printf("ok");
Так что в принципе я должен поместить цикл for в цикл while. – user2729661
вы должны поместить все в цикл while. –
Идея состоит в том, что вся ваша процедура (get input -> validate) должна выполняться каждый раз, когда вход недействителен. Однако, поскольку вы только переустанавливаете фазу ввода, slash_count никогда не будет обновляться, и он никогда не будет проверен. –