| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2085 人关注过本帖, 1 人收藏
标题:初学者的苦恼
只看楼主 加入收藏
醉祁今朝
Rank: 2
等 级:论坛游民
威 望:1
帖 子:48
专家分:76
注 册:2015-5-18
收藏
得分:0 
回复 39楼 TonyDeng
哦哦,明白了。谢谢。

多艰难 都要走下去
2015-06-08 11:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你查一查fflush()函数的资料,就明白这个解决方案是唯一的,当然它不是标准中规定的有效动作(标准说未必有效,但编译器的具体实现却能够保证它有效,起码在MS的编译体系中它是有效的)。只有你前面测试和尝试过各种情形,才明白为什么是这样才有效,不然会像某些人那样,以为getchar()吸收了后面一个字符就当有效,却不知道后面无效的输入数据是未知有多少个的,那甚至写循环也找不到结束條件。那些没真正使用自己写的程序做事的人,肯定不知道自己的程序有问题,这就是我反复强调“写程序必须用起来”的原因。玩一玩,不如别学。

授人以渔,不授人以鱼。
2015-06-08 11:52
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
回复 42楼 TonyDeng
教训的是,一定改正。

剑栈风樯各苦辛,别时冰雪到时春
2015-06-08 11:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我为什么一直在督促你测试和解决这个问题呢?因为输入错误需要即时排查是现实中百分之二百会遇到的问题,你可能一辈子不会被要求算出圆周率小数点后面一万位,但绝对一出门就遇到需要解决交互输入输出的问题,那将会伴随你的编程生涯终身,百分之八十的时间都是解决各种各样这类的问题。我总不明白为什么有些人总是热衷于一些大而无用的技能或是不急之务,对最基本的问题却嫌浅薄不去钻研,结果也可以看得到的,一到期末做课题,就是各种基础问题的死法,八成是栽在输入输出上的,不信你翻看一下那些帖子,瞧是不是那样。

授人以渔,不授人以鱼。
2015-06-08 12:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
看一个具体例子:https://bbs.bccn.net/thread-446250-1-1.html

这个帖子的问题,就是平时不测试、不深究的典型。scanf()中的%s指示符,读取一段字符串,但它是只能读取一个“单词”的,所谓单词是指用空格、制表、回车换行之类空白符分隔起来的连续串。这个特性,书上有讲,库函数使用手册有讲,不看书或看书不看文字的,起码也要在编程时有测试函数用什么输入獲得什么輸出的经验才付诸使用。凡是问这类问题的,一定是没认真做功课之人。不懂没问题,但没意识就难救了。

你看他代码的定义,两个字符串的長度都那么长,很明显是考虑到文本带空格的,但实现的代码,却居然是用scanf()的%s,还要问什么错位,那么我上面的定性就是没错的。的确很多人到了期末做课题的时候,都仍然不知道这个问题的,像“姓名”之类字段,他就是用scanf()的"%s"去读,楞是没觉察像英文地区那样的人名带空格会如何。还有那种给出一段代码,问为什么輸出不对的,也基本上是这类,他完全没有意识應該把输入告诉人,就问輸出为什么是这样,须知“輸出由输入决定”、“垃圾输入只能得到垃圾輸出”,这是最基本的道理,凡是这样问问题的,第一我不会去答,第二抢答的人自己大半也是跟问问题的是同类。

授人以渔,不授人以鱼。
2015-06-08 13:22
醉祁今朝
Rank: 2
等 级:论坛游民
威 望:1
帖 子:48
专家分:76
注 册:2015-5-18
收藏
得分:0 
回复 45楼 TonyDeng
谢谢指教。有时候写出来的代码自己看不出问题,都是因为那些基础的东西掌握不牢靠。那个getchar()是指它一次只能清一个字节吗?我运行那段代码,无意中输入了一个中文标点,然后循环了两次才能开始重新输入了。

多艰难 都要走下去
2015-06-08 14:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
是的

授人以渔,不授人以鱼。
2015-06-08 15:08
快速回复:初学者的苦恼
数据加载中...
 
   



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

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