cin及scanf在使用时的注意事项.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档