C语言中 scanf()的返回值是成功读入参数的个数
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
忘了是谁前天问的了,本来是打算昨天写的,不过昨天有讲座写,于是乎就改今天写了。
他问我为什么 while(scanf("%d",&a)!=0) 这样的语句不能中断程序。OK,我们知道while()的参数是一个值,而这个值是scanf()函数返回的,所以我们到MSDN里面看一下相关的说明:
Both scanf and wscanf return the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned. A return value of 0 indicates that no fields were assigned. The return value is EOF for an error or if the end-of-file character or the end-of-string character is encountered in the first attempt to read a character.
通过这段话,我们可以知道scanf()的返回值并不是参数的值,而是成功读入参数的个数,举例说明:
scanf("%d%d",&a, &b);
如果a和b都被成功读入,scanf()的返回值是2
如果只有a被成功读入或者只有b被成功读入,scanf()的返回值为1
如果a和b都未被成功读入,scanf()的返回值为0
如果遇到错误或遇到End Of File,scanf()的返回值为EOF。
所以呢,文章开头提到的那句代码是不能正常中断程序的。
听了一个网络安全讲座
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
今天周五,没课。上午去听一个图形学的专业方向介绍,没什么感觉,因为我对图形图像一向不敏感......只是惊讶地发现班主任居然还认识我......
几天前就知道了今天晚上有一个网络安全讲座,提到了网络安全,咱不能不去听一听,可是听完以后我才觉得这讲座真的不是我该听的......倒不是说老师讲的不好,而是老师讲的真的是太基础了,而且也太古老了,基本上都是04-07年的技术。像什么windows弱口令、MSSQL的Sa空密码、啊D注入工具使用、radmin使用......现在基本上都不能用了。
而且不知道是不是老师觉得我们真的是"菜鸟"而忽略了,反正有二个地方我认为他说错了:
1、"Windows XP的administrator用户空密码会导致黑客入侵"。其实不是这样的,XP默认的设置是不允许administrator用户空密码远程连接的。
2、"Windows XP不能多人同时3389登陆"。默认设置是只允许单一用户登陆XP,但是黑客可以通过修改注册表使得XP SP2以上支持多用户终端登录,我博客里也有相应的文章介绍方法。
总体来说老师讲的还是不错的,只是希望以后的讲座可以讲一些高级的东西......
PS.据说组织者要求老师讲一些实战的东西,结果老师就开始一个一个讲工具的使用......殊不知网络安全最主要的不是工具,而是网络基础和网络入侵思想么......这样一个一个讲工具最后出来的还不都是一堆脚本小子......
天气开始转凉了
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
这两天男生们都不约而同地换上了长裤,因为天气开始转凉了。令人惊讶的是很多女生却依然是七分裤、裙子出门,至于原因我是懒得去想的。。。
天气转凉,外出是舒服了,可是学校却把中央空调关了,搞得教室里跟蒸笼似的。。。那种教室自带立柜空调的还好,没有的就比较惨了。当然了,没有立柜空调的教室毕竟是少数,嘎嘎。
天气转凉带来的消极影响就是洗过的衣服越来越难干了,这不我前天洗的衣服早晨从外面拿进来还没干,搞得我不得不用吹风机把衣服吹干。。。囧
最近活动和作业都比较多,搞得人怪紧张的。抓紧时间A学校OJ的题,争取寒假之前A到80题~~
PS.突然发现live现在的模板好难看。。。
C语言 多组数据for循环的一个小技巧
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
在OJ做题的时候,我们经常会看到题目说:输入有多组数据。输入的第一行输入一整数N,表示有多少组数据。
这时我们就会写出如下代码来实现这句话:
int i,n;
scanf("%d",&n);
for (i=1;i<=n;i++){
}
这样写没错,但是有一种更好的方法:
int n;
scanf("%d",&n);
for (;n>0;n--){
}
或者(felix提醒)
int n;
scanf("%d",&n);
while(n--){
}
看到了么?使用这个小技巧,就可以让我们节省一个变量。所以,当我们的循环变量不参与循环体的操作时,我们就可以用这个方法来使得程序更加小巧。
李开复:算法的力量(转载)
算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不可能成为高手的。
期中了,考试了,我...饿了
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
不知不觉来到大学已经2个月了,在感慨时光飞逝,岁月如梭的时候,伴随而来的N多科目期中考试也让我心力交瘁、手忙脚乱,头痛不已。。。
虽然有点夸张,不过最近的考试还真是很多,先是语文,然后是数学,上星期C语言也留了一个大作业,今天思修又布置了了一个N千字的社会实践调查报告,刚刚去上民俗文化的选修课,老师再一次布置了一个N千字的论文。。。哦对了,明天英语考试。。。疯狂中。。。
这周和下周有的忙了,论文。。。我得找Google大神帮我了。。。
这几天没事就在刷学校OJ上面的水题,因为老师说做得多者期末有加分。。。为了那点分数,我还是不得不刷那些水得不能再水的水题。。。
明天考英语,Vocabulary和Translation,还好是给定范围的,只要背一背就行~
PS.腾讯啊,你赶紧把彩虹QQ外挂给封杀吧。。。











