| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 775 人关注过本帖
标题:关于cin的一个问题
只看楼主 加入收藏
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
 问题点数:0 回复次数:9 
关于cin的一个问题

int n;
cin>>n;
如:
输入:256(没问题)
输入:sshdj(出现了问题)
输入:126.356(也出现了问题)
如上:我要输入的是一个整型数据,但是我一不小心输入的是字母或是其他,就会导致错误。
请问我应该如何写程序才能判断使得一旦输入的不是整型数据就会自动提示输入有误。

搜索更多相关主题的帖子: 如何 字母 
2006-03-28 17:19
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
怎么没有人回答我呢?这个问题很简单不值得一答?

♂ 死后定当长眠,生前何须久睡。♀
2006-03-28 18:59
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
收藏
得分:0 
要用到I/O流的错误输入的知识~

有实力才会有魅力 实力来自坚持不懈的努力
2006-03-28 19:26
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
请问该如何解决?

♂ 死后定当长眠,生前何须久睡。♀
2006-03-28 20:51
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

[CODE]#include<iostream>
using namespace std;

int main()
{
int a;
cin>>a;
while(cin.fail())
{
cout<<"input a value,please : ";
cin.clear();
cin.sync();
cin>>a;
}
cout<<a<<endl;
system("pause");
return 0;
}[/CODE]


2006-03-29 12:06
cai111
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-3-29
收藏
得分:0 

如果输入 2005c 程序还是检查不出错误啊!

2006-03-29 20:08
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
收藏
得分:0 
以下是引用cai111在2006-3-29 20:08:00的发言:

如果输入 2005c 程序还是检查不出错误啊!

已经在你新贴中回答啦


有实力才会有魅力 实力来自坚持不懈的努力
2006-03-29 22:11
winstan
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-3-30
收藏
得分:0 
以下是引用woodhead在2006-3-29 12:06:00的发言:

[CODE]#include<iostream>
using namespace std;

int main()
{
int a;
cin>>a;
while(cin.fail())
{
cout<<"input a value,please : ";
cin.clear();
cin.sync();
cin>>a;
}
cout<<a<<endl;
system("pause");
return 0;
}[/CODE]

请问woodhead :using namespace std;是什么意思,怎么用来着?为什么我拷下来用在一个程序中出现如下的错误:
E:\VC\面向对象\年月日.cpp(2) : error C2871: 'std' : does not exist or is not a namespace
3x :)

2006-03-30 14:09
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
以下是引用woodhead在2006-3-29 12:06:00的发言:

[CODE]#include<iostream>
using namespace std;

int main()
{
int a;
cin>>a;
while(cin.fail())
{
cout<<"input a value,please : ";
cin.clear();
cin.sync();
cin>>a;
}
cout<<a<<endl;
system("pause");
return 0;
}[/CODE]
运行结果:
assdq
input a value,please : asd
input a value,please : assad
input a value,please : asasa
input a value,please : sasasas
input a value,please : asasas
input a value,please : 123.354
123
请按任意键继续 . . .
Press any key to continue

但是我输入:123.345之后a 的值是123而不提示错误,为什么?


♂ 死后定当长眠,生前何须久睡。♀
2006-03-30 15:36
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

123对于整型的输入是有效的,会被读取转换为整型, 遇到'.'后读取结束,当下一次cin时 '.' 才会被读.

如果想要严格的输入判断,可以看看

http://www.bc-cn.net/bbs/dispbbs.asp?boardID=56&ID=53814&replyID=81604&star=1&skin=0#81604


2006-03-30 15:58
快速回复:关于cin的一个问题
数据加载中...
 
   



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

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