职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 759|回复: 1

C++ ignore

[复制链接]
jinchang 发表于 2009-8-17 08:53 | 显示全部楼层 |阅读模式
#include<iostream>
#include<string>
using namespace std;

int main()
{

char a[10];
int i;
for(i=0;i<10;i++)
{
cin>>a;
}
cin.ignore(6,&#39;5&#39;);
if(a[0] != &#39;1&#39;)
{
cout<<\"ignored\"<<endl;
cout<<\"a[0]=\"<<a[0]<<endl;
}
cout<<\"output a\"<<endl;
for(i=0;i<10;i++)
{

cout<<\"a= \"<<a<<endl;
}


system(\"pause\");
return 0;
}
当输入1234567890后
运行到ignore()时
为什么要多输入3个字符
程序才运行output a,而且程序没有ignore 12345,因为输出为1234567890???
Thank you
idol77 发表于 2009-8-17 08:53 | 显示全部楼层

C++ ignore

楼主您好
是这样的:
首先
您在使用ignore之前已经使用cin把字符读入了a
这样您不管怎么使用igonre操作都不能改变已经储存好的a

还有
因为您使用了cin.ignore(6,&#39;5&#39;);
它的作用只是忽略输入的6个字符(注意是以后输入的
而不是您之前已经输入并储存到数组a的字符~)
如果中途遇到‘5’ 就停止忽略
您说需要多输入3个字符是不对的
实际需要多输入了6个字符因为回车也算一个字符
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-25 18:27 , Processed in 0.123155 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表