Я пытаюсь ввести данные с помощью scanf с условием, что
я пробовал это
scanf("%[c]%[^[aeiou\n]]",a);
Но когда я пытаюсь напечатать (a), я просто печатаю «c». Пожалуйста, помогите мне, где я делаю ошибку. Я открыт для новых идей.
Это то, что я получаю для следующего ввода Вход :
cdfgt
Вывод:
c
Требуемый результат должен быть Вывод:
cdfgt
Как определяется a?
это просто объявлено
Пожалуйста, включите и эту декларацию.
Есть два спецификатора преобразования, поэтому вам нужны две переменные для хранения результатов.
Он объявлен как ( char a[20]; )
@sahithkumar использует fgets и самостоятельно анализирует строку, как это предлагается в первом комментарии. scanf просто не предназначен для пользовательского ввода. Это примерно 3-4 строки простого кода.
Ваш scanf ищет 2 строки, и вы предоставляете a только для их хранения - лучше делать то, что предложили другие, а не использовать scanf.





Для сложных входных форматов
scanfи семейство просто недостаточно хороши. Прочтите строку полностью и попытайтесь убедиться, что она соответствует требуемому формату (возможно, с помощью регулярных выражений).