首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用scanf的选择性输入。可能仅读取ascii 0x79和0x6e

使用scanf的选择性输入。可能仅读取ascii 0x79和0x6e
EN

Stack Overflow用户
提问于 2011-12-11 22:54:26
回答 3查看 804关注 0票数 0

我想知道是否有可能做这样的事情:

代码语言:javascript
运行
复制
char yn;

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

因此yn只能变成y (0x79)或n (0x6e)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-11 22:58:22

不能,但您可以使用scanf读取字符

代码语言:javascript
运行
复制
scanf("%c" , &yn );

在此之后,您必须检查它是y/n还是非法输入。

代码语言:javascript
运行
复制
if ( yn == 'y' ) {
  ...
}
票数 3
EN

Stack Overflow用户

发布于 2011-12-11 23:15:07

您可以使用%[转换并执行以下操作:

代码语言:javascript
运行
复制
char yn[2];

if (scanf("%1[yn]", yn) == 1 && yn[0] == 'y')
票数 3
EN

Stack Overflow用户

发布于 2011-12-11 23:45:33

更好的方法应该是使用scanf scanset,如下所示:

代码语言:javascript
运行
复制
char c[2];
if( scanf("%1[yn]",c)==1 )
  puts("yn");
else
  puts("not");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8464888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档