处理任意长度int 数据(串)输入的纠错函数
程序代码:
调用方法: int a; a=input_sum(t); //t 是你要处理的长度 其中t为你要输入的int 数据的长度;*/ #include <iostream> #include <string> using namespace std; int main() { int return_sum; int input_sum(int a); while(true){return_sum=input_sum(5); cout<<"return_sum="<<return_sum<<endl<<endl;} //655=10*10*6+5*10+5*1 return 0; } //******字符串处理为数字串(int型)的函数,t为int 型位数 ******// int input_sum(int t) //例如输入任意字符串,需要返回 一个5位数的int值,调用方法为input_sum(5) { int pow(int); //声明要调用的幂函数 int i,return_sum; string str; loop: getline(cin,str); if(str.length()>100) { cout<<"\n大哥,你输入的字符长度太大了,有必要吗?还不快重 新输入:"; goto loop; } else ; for(i=1;i<str.length();i++) { if(str[i]<0) {cout<<"\n不要输入中文,请重新输入:";goto loop;} else if((str[i]>0&&str[i]<32)||(str[i]>32&&str[i] <48)||str[i]>57) {cout<<"\n请输入"<<t<<" 位"<<"0-9的数字组合,明 白:";goto loop;} else if(str[i]==32) {cout<<"\n不要输入空格,请输入"<<t<<" 位"<<"0-9的数字组 合:";goto loop;} else ; } if(str.length()!=t) {cout<<"\n字段长度不对,"<<"请输入"<<t<<" 位"<<"0-9的数字 组合:"; goto loop;} else ; int temp=0; for(i=0;i<t;i++){temp=temp+(str[i]-48)*pow(t-i-1);} return_sum=temp; //cout<<"字符串长度为:"<<str.length()<<endl<<endl; //测试时用到 return return_sum; //函数返回int 型的值 } //******以10为底的幂函数100=10*10,t=2 把字符串处理为数字 串(int)时用到******// int pow(int t) { int i,temp=1; for(i=0;i<=t-1;i++) { temp=10*temp; } return temp; }
funtion.zip
(1.39 KB)
[ 本帖最后由 ishagua 于 2011-6-5 16:33 编辑 ]