- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
cin和scanf在使用时的注意事项
(注:本文中的源代码没有包含头文件,实验时请自己编辑。)
请边看边操作,这样才能真正明白其中的窍门:
一,scanf():
常用的有
(1)scanf(%s,a);//a为字符串的指针;
例:
int main(){
char a[20];
scanf(%s,a);
printf(%s,a);// 输出字符串a中的字符
return 0;
}
注意: 1,这种获得字符串的方法前面可以有回车符 \n ,注意哦!你可以试一下。输入时在前面猛打回车,然后再输入一组字符,这样输出的还是你输出的字符。如下图:
2试完了回车,重新运行一下,然后你在前面加n个空格,然后再输入一个连续的字符,看看会出现什么?你会发现他把前面的空格全忽略了。如果你想要,当然也可以,或者用正则表达式,或者用gets(); 比如: gets(a); 这样,你输入的空格也能记录下来了。如下图:
3,再试一下 输入一个连续长度的字符后加一个空格再输入:比如输入一个人的名字的时候“Bill Gates”你会发现输出只有Bill ,而Gates见鬼去了。所以名字的输入和上面一样,最好用gets(); 函数。如下图:
这请弄明白了再往下看。谢谢合作!
(2)scanf(%c,a);//注意取地址符;
例:
int main(){
char a;
scanf(%c,a);
printf(%c,a);// 输出字符a中的字符
return 0;
}
注意:在获得字符时如果有回车,吸收之。你可以这样试一下,运行上面的程序,回车一次,仔细观察他空了几行。(第一行是你敲的,第二行是printf输出的a的值),明白其中的奥妙了么?
(3)scanf(%d,a);
例
int main(){
int a;
scanf(%d,a);
printf(%d,a);// 输出整形a中的值;
return 0;
}
注意:这个输入和(1)一样,会自动忽略前面的回车\n(其实就是个ascII码) 。
弄明白了以上三个使用方法,看看下面这个程序的输出结果是什么?
例1
输入如下:
输出:
明白了?没明白再看看前面的然后再往下看;
例2,
源程序:
输入:
输出:
看到了么?输入80回车后直接跳过对b的输入跳到printf(“%d\n”,a);去了,输出a后再输出b,现在的b就是一个回车’\n’ 还记得么? 这样,后面跟着两个回车 ,然后输出了“Press any key to continue”
你会发现 %s 和 %d 是以’\n’当做输入的结束,而不吸收’\n’,所以当给b赋值时由于上次输入留下的’\n’没有被吸收,%c就要上它了。导致你没有输入b的值就直接出结果了。
你可以把上面的首先给int赋初值改成给一个字符串赋初值,后面跟一个给char型字符覆初值。你会发现同样的问题。%c真是来者不拒,呵呵。
这儿非常重要,一定要搞明白了再继续往下看。
二, cin
它用起来要比scanf简单多了。
int main(){
char i;
char b[20];
int c;
cini; //给字符赋值
cinb; //给字符串赋值
cinc; //给整形赋值
}
注意:cin和scanf在使用时要特别注意!
请跟我走;
例1
输入
输出:
这一点和scanf是一样地;
例2
还是上面那个程序,输入
输出
这一点和scanf也一样
例3
还是上面的那个程序,输入
输出:
跟scanf一样…………那到底哪不一样呢…………
接着往下看;
源程序:
输入:
你先猜猜结果是啥?如果是scanf,那肯定是输入完abcdef后回车,就输出结果了。
输出结果:
失望了吧,它在等你输入b的值那!
当随便输入一个后,结果如下:
怎样?看出点猫腻了吧?cin和scanf就差这了。把上面程序换成一个int型和一个char型,先给int赋值,再给char赋值,也会出现相同的情况,不会像scanf直接跳过去,即使你狂按回车,他照样依然不动声色。
看完了上面这些,再来看一个实例吧。
(这是咱们网赛时第二题)
TimeLimit : 1 Second Memorylimit : 32 Megabyte
Totalsubmit : 129 Accepted : 31
xiaoA is a beautiful girl, and she has so many skirts that she wont wear a skirt a second time before the skirt is washed. Now xiaoA wants to go shopping, how
您可能关注的文档
- 第11讲 流水施工.ppt
- 第11讲 嵌入式GUI程序开发.ppt
- 第11讲 iFIX历史数据库及报表.pdf
- 第11讲 Linux操作系统基础.ppt
- 第11讲 补充文件操作.ppt
- CentOS6.5 64位 Tomcat7 JDK1.7 Nginx镜像使用手册教材.pdf
- 第11讲 微机系统的常见故障.ppt
- CF卡数据格式fat副本.docx
- ch1 c语言教材.ppt
- ch1 JSP概述和实验环境.ppt
- 功能设计_MM_MM015_报废单_20080109_v2.0.doc
- 功能设计_MM_MM021_采购订单批导入程序_20080108_v1.0.doc
- 功能设计_MM_MM020_出库单_20071205_v2.1.doc
- 功能设计_MM_MM019_入库单_20071205_v2.1.doc
- 功能设计_MM_MM018_领料单_20080114_v2.0.doc
- 功能设计_MM_MM016_ERP与招投标系统接口_20080327_v1.2.doc
- 功能设计_MM_MM014_退库单_20080109_v1.0.doc
- 功能设计_MM_MM013_物料盘点清单_20080114_v2.0.doc
- 中考数学知识点10 一元一次不等式(组)(2).pdf
- 七年级数学优质课公开课教案教学设计期中综合检测.pdf
文档评论(0)