| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 530 人关注过本帖
标题:[求助]类型输入不匹配问题
只看楼主 加入收藏
溪水
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2006-3-14
收藏
 问题点数:0 回复次数:5 
[求助]类型输入不匹配问题
要求输入的数是float型,但你输入string类型,怎样写代码才可以提示你输入的类型错误

[此贴子已经被作者于2007-4-7 12:11:57编辑过]

搜索更多相关主题的帖子: 类型 输入 
2007-04-07 10:25
Garand
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-5-27
收藏
得分:0 

76

[此贴子已经被作者于2007-4-7 14:57:24编辑过]

2007-04-07 11:39
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

LS:这个相当于
if(num<0)
cout<<"输出正整数"<<endl;
......

LZ:
想要避免输入字符串后出现错误,你就把读入类型设置为string,然后判断是否格式正确(对于你就是查看是否是数字)
正确则把string转换成你要的格式,比如int.
格式不正确则随便你怎么处理了


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-04-07 14:33
Garand
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-5-27
收藏
得分:0 
整型的话:
#include<iostream>
#include<string>
using namespace std;
int main()
{
cout<<"输入字符串:";
string str1,
str2;
getline(cin,str2);
bool judge=false;
for(int i=0;i!=str2.size();++i)
{
if(!isdigit(str2[i]))
{
judge=true;
}
}
if(judge)
{
cout<<"类型错误";
}
else
{
str1=str2;
}
return 0;
}
2007-04-07 14:56
溪水
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2006-3-14
收藏
得分:0 

首先谢谢各位的回帖,也许是由于我没有把问题说清,才给大家带来了麻烦。现在我把问题再说的详细点,顺便把我做写出来的程序贴出来,希望大家多提点意见

题目类型[软件测试]
问题:用C或C++语言写一个通过输入三角形的三边生成一个三角形的程序,要求程序尽可能多的满足测试用例(普通三角形、等腰、等边三角形)。错误的测试用例要提示,例如:边出现负数、零、字符型的要提示出错

代码:#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <vector>

using namespace std;

int IsTri(float a,float b,float c)
{
if(a+b<=c)
{ cout<<"The edges cannot be TRI!"<<endl;
return 0;

}

else
if(a+c<=b)
{ cout<<"The edges cannot be TRI!";
return 0;

}
else

if(b+c<=a)
{ cout<<"The edges cannot be TRI!";
return 0;

}
else
return 1;

}
}


int main( )
{

float a,b,c;
int res;

cout<<"Please input 3 edges:\n"<<endl;

float n[3];
int ret,i=0;

while(i<=2)
{
do{
printf("input:");
ret=scanf("%f",&n[i]); //这里如果输入2e的话不会提示出错,因为我的编译器把它e默认为2.71929

while(getchar()!='\n')
ret=0;

if(ret!=0) i++;

if(ret==0)
cout<<"Please Input again\n";

}while(ret!=1);

}


if(n[0]==0||n[1]==0||n[2]==0)//判断是否为零值

cout<<"The value of Tri cannot be zero!"<<endl;

if(n[0]<0||n[1]<0||n[2]<0)//判断是否为负值

cout<<"The value of Tri cannot be a negative number!"<<endl;


res=IsTri(n[0],n[1],n[2]);

if(res)
{
cout<<n[0]<<" "<<n[1]<<" "<<n[2]<<" can make a Tri\n"<<endl;

}

if(n[0]==n[1]&&n[1]==n[2])

cout<<"It's a zheng Tri\n"<<endl;

else if(n[0]==n[1]||n[1]==n[2]||n[0]==n[2])

cout<<"It's a deng yao Tri\n"<<endl;

else

cout<<"It's a general Tri\n"<<endl;

return 0;
}

[此贴子已经被作者于2007-4-7 22:25:38编辑过]


菜鸟学习中.......
2007-04-07 22:11
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

请先仔细看清除我们的回答,我们就是在解释这个一丝


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-04-08 14:50
快速回复:[求助]类型输入不匹配问题
数据加载中...
 
   



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

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