作者homestay (homestay)
站内Programming
标题[问题] 输入资料的型态判别 C
时间Sat Sep 12 09:31:05 2009
大家好 小弟是C语言的新手.
昨天试了一晚还是想不出方法,想拜托大家= =
一般输入资料型态都是既定(应该吧)
如scanf必须指定%? gets是直接拿字串等等
有的题目的输入值为:
235 3546
346346 34577
3567 46
.
每行有两数字中间有空白隔开,若是遇到'.'则结束。
小弟本以为可以直接用scanf,遇到'.'直接可以转成符号编码(int)。
但是测试後似乎不行直接转型态(数字太大可能会改用long)
第二个想法是旧资料的方式,用阵列以gets将整行输入後判断是否为'.'再转成数字
转成数字的方式我是用2个回圈 第一次读到' '停(空白这样写不知有没有错)
第二次读到'\0'停
结果是:只读一个数字的版本有成功,可是读两个compiler正确 可是读失败
冏~
以上是小弟的问题 不知道大家有没有比较好或是直接的方法
感激不尽T^T
感谢大大回答 不过有的指令我不知道用法,正在估狗中
附一下我的写法,complier没错 只是结果是错的
void main()
{
char str[20];
while((str[i]=getche())!='.')
{
if(((str[i])==' ')||((str[i])=='\n'))
printf("进入空白或ENTER");
else{
printf("进入ELSE");
}
++;
}
printf("因为按了.跳出");
}
似乎无法成功读取enter= =
是这边写法有错,可是不知道要改成什麽~冏
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.0.87
1F:推 KanoLoa:读失败的意思是? 114.42.18.127 09/12 09:46
2F:推 tingyushyu:fgets()完strtok()或sscanf()122.117.237.194 09/12 10:02
3F:推 bob123:scanf + strchr 140.120.61.206 09/12 10:17
4F:→ homestay:读失败是printf印不出东西= =" 220.133.0.87 09/12 12:19
5F:→ kuninaka:失败会return -1 218.164.144.26 09/12 15:43
6F:→ kuninaka:成功return 输出的characters数 218.164.144.26 09/12 15:44
※ 编辑: homestay 来自: 220.133.0.87 (09/12 17:02)
※ 编辑: homestay 来自: 220.133.0.87 (09/12 17:09)