Здравствуйте, ansi, Вы писали:
A>Здравствуйте, <Аноним>, Вы писали:
А>>Тогда вопрос. Если в буфере, после ввода 'y' (спецификатор "%c") остается символ '\0' — не понимаю, как тогда вообще считать только один символ?
A>Он там не останется. Сивол '\0' записывается в конец строки, но не является частью буфера. Ты же спецификатором "%[NnYy]" указывал, что тебе надо считать именно строку и давал указатель char *, который вмещал в себя один символ, но scanf'у то пофиг, что ты не позаботился о выделении достаточного количества памяти. Если ты вызовешь с "%c", то scanf запишет ровно один символ.
Да, но прога-то, КОГДА ВВОДИТСЯ С КЛАВИАТУРЫ 1 (ОДИН) СИМВОЛ, ведет себя так, как она по вашим словам должна себя вести, когда их там больше (и все, что сверх "моего" char, остается в буфере) — она больше не ждет ничего от юзера,
она сразу приступает к проверке второго символа, он не подходит, и прога завершается!