Выборочный ввод с использованием scanf. Можно читать только ascii 0x79 и 0x6e - PullRequest
0 голосов
/ 11 декабря 2011

Мне было просто интересно, возможно ли сделать что-то вроде этого:

char yn;

scanf("%79/6ec",yn);

, поэтому yn может стать либо y (0x79), либо n (0x6e)

Ответы [ 3 ]

3 голосов
/ 11 декабря 2011

Вы можете использовать преобразование %[ и сделать что-то вроде этого:

char yn[2];

if (scanf("%1[yn]", yn) == 1 && yn[0] == 'y')
3 голосов
/ 11 декабря 2011

Лучше всего использовать Scanf Scanset, например:

char c[2];
if( scanf("%1[yn]",c)==1 )
  puts("yn");
else
  puts("not");
3 голосов
/ 11 декабря 2011

Нет, но вы можете использовать scanf, чтобы прочитать символ

scanf("%c" , &yn );

, после этого вам нужно проверить, является ли это y / n или недопустимым вводом.

if ( yn == 'y' ) {
  ...
}
...