标题:请教gets(s)函数 能否用在switch(s)前作为输入
只看楼主
David_4
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-11-3
 问题点数:0 回复次数:11 
请教gets(s)函数 能否用在switch(s)前作为输入

请教gets(s)函数 能否用在switch(s)前作为输入
例如
main(){
char select[10];
gets(select);
switch(select){
case 'A':printf("great\n");break;
case 'B':printf("bad\n");break;
default :printf("over\n");
}
}

运行时输入A 但没进人case A
请各位高手 指点一二 小弟不胜感谢

搜索更多相关主题的帖子: switch gets 函数 case printf 
2005-11-03 22:11
学C中
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2005-10-30
得分:0 
如果是这样那么"A"用到哪里去?

2005-11-03 23:12
风灰
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-10-22
得分:0 

怎么运行时会有警告的~~

2005-11-04 00:41
不走寻常路
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-9-26
得分:0 
如果只要输入一个字符的话,只要定义一个字符变量,不用定义一个字符数组吧.

学C不长,但很喜欢,梦想能成为编程一族! qq: 83461951 欢迎来指教!
2005-11-04 10:42
为老生活
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-11-3
得分:0 
  从逻辑上说是没得错的,可能是你那点语法的错误吧
写的时候是不是那犯老点书写的错误,检查一下
哎~~~~~~~~~~~~
很久没用C拉,全都是只晓得算法,,5555

为老生活
2005-11-04 11:28
为老生活
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-11-3
得分:0 

"gets"与“scanf”
gets() 函数,将第一个换行符之前的所有字符读入,遇到回车结束
scanf() 函数与其说读入一个串不如说读入一个词,遇到空格结束
它们没有在那个函数前用,那个函数前不能用
前面几楼的意见你可以看一下,问题究竟在那

把你程序改一下
main(){
char select[10];改成char select;
gets(select); 改成scanf
switch(select){
case 'A':printf("great\n");break;
case 'B':printf("bad\n");break;
default :printf("over\n");
}
}
能行!!!!!


为老生活
2005-11-04 11:52
David_4
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-11-3
得分:0 

感谢楼上的解释

[此贴子已经被作者于2005-11-4 12:34:05编辑过]

2005-11-04 12:29
高寒
Rank: 2
等 级:论坛游民
帖 子:134
专家分:20
注 册:2005-10-25
得分:0 
1.你用gets()读入的是字符串
2.select是地址常量是你输入字符串的首地址

2005-11-05 09:32
swiminfire
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2005-8-11
得分:0 
getchar()就可以了

Get in first, and then word your ways out ! BY KIKI
2005-11-05 16:02
greentree
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-11-7
得分:0 

如果你输入 A
gets()读入的是 A和'\0'是两个字符而不是一个。

2005-11-07 20:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-32508-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.945537 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved