网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月06日
漏签
0
天
c语言吧
关注:
798,781
贴子:
4,349,621
看贴
图片
吧主推荐
视频
游戏
1
2
下一页
尾页
27
回复贴,共
2
页
,跳到
页
确定
<<返回c语言吧
>0< 加载中...
scanf输入字符问题,求大神看下怎么错了,
只看楼主
收藏
回复
Roger
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
void ques_1()
{
char a,b;
int i;
printf("第一题:你是不是叫XX? y 是, n不是。\n");
getchar(a);
while(a!='y')
{
printf("不好意思回答错误,请重新输入\n");
scanf("%c",&a);
}
printf("亲,回答正确,快进入下一题把!\n");
}
为啥输入n回出现两个 ”不好意思回答错误,请重新输入“
Roger
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
每人帮忙吗、、、
北京百度网讯科技有限公司
鱼油?别担心,我们提供专业医疗服务,助您找回健康生活
2025-03-06 01:03
广告
立即查看
Roger
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
mylastwish
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
char ch;
while((ch=getchar())!='\n')
continue;
加在scanf()语句后,处理回车,参考C Primer Plus中Page196
小_埃
彩虹面包
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
正确做法:scanf(" %c", &ch);注意百分号前面有一个空格。
l357g
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
4楼~getchar()输入时把回车也算进去了?
Allure彡
彩虹面包
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主,这样的,首先你是不是先摁 ‘n’ 然后就摁回车,这是键盘的缓冲区里的字符有 ‘n' 和回车符,然后 ’n'赋值给a,判断,a!=‘y’,接着输出 ‘“错了“,接着输入数据,这是你又摁了 ’n'和回车吧,现在见哦按缓冲区里就有你之前的回车符和你现在摁的 ‘n'和回车符。就是缓冲区里现在是 回车 ’n' 回车 然后 scanf输入数据 回车赋值给a,回去判断 ,a!=‘y',就是你现在见到的样子了,纯手打,希望楼主能明白啊,同时有什么不对的希望能指出来
zbssb250
毛蛋
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
scanf("%c",&a);字符也要&吗?
佚名兄
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
其实把while换成if就好了
rzjs0053
超能力者
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
吸收了一个回车键,所以多了一次输出。
642985327
彩虹面包
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
为什么要getchar,scanf取字符,用else if判断,不就不存在回车符问题了吗
—我是一条很乖很可爱的小尾巴~
—我是一条可以吃的小尾巴~
—小尾巴当然是越多越好~
adward0525
大能力者
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我晚上回去试试去~
…………………………………………………………………
叫你偷看本主公洗澡…………叫你偷看本主公洗澡…………叫你偷看本主公洗澡………………………………………………………………………备注:周瑜偷看刘备洗澡,罚扫厕所一个月……凡是把“主公”看成“公主”的都必须回复我!
--来自助手版贴吧客户端
sky_艾斯
强能力者
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
来,给你个代码
#include<stdio.h>
int main(void)
{
char a;
printf("第一题:你是不是叫XX? \n【y:是, n:不是】\n");
while(1)
{
scanf("%s",&a);
if(a=='y')
{printf("亲,回答正确,快进入下一题把!\n");break;}
//编译器通不过就把这个花括号展开
else if(a=='n')
printf("不好意思回答错误,请重新输入\n");
else
printf("输入错误,请重新输入\n");
}
return 0;
}
其实在格式输入符改成字符串形式即可
sky一剑绝尘001
低能力者
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
加个getchar();吸收下回车
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示