#c
Хочу сделать в программу интерфейс. Чтобы писали например "push 982" и в массив попадало
982. Но также хочу реализовать команды: pop и break. Но считывание в бесконечном цикле
я произвожу таким образом:
scanf("%s %d", &cmd, &num);
cmd - сама команда, num - число. И из-за этого формата человеку приходится писать
"pop 0" или "break 0". Так как формат введёный в scanf требует пробел и число, иначе
не воспринимает.
Можно ли как-нибудь сделать ,чтобы num - был необязательным и чтобы если пишешь слово
без числа, оно всё равно бы считывалось?
Или это реализовывать можно только посимвольным считыванием? (тогда это не стоит
того)
Ответы
Ответ 1
scanf("%s", &cmd); if (!strcmp(cmd, "push") { scanf("%d", &num); ... } else {...} не канает?Ответ 2
Вам поможет "Подавление ввода". Если коротко, то поставьте звездочку между процентом и спецификатором формата, это заставит scanf считать, но никуда не присваивать. scanf("%*s %d", &int_num);
Комментариев нет:
Отправить комментарий