注册 登录
编程论坛 C++教室

处理任意长度int 数据(串)输入的纠错函数

ishagua 发布于 2011-05-21 02:01, 698 次点击
程序代码:

调用方法:

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;
}


只有本站会员才能查看附件,请 登录


[ 本帖最后由 ishagua 于 2011-6-5 16:33 编辑 ]
2 回复
#2
lomey2011-05-21 04:57
谢谢楼主,学习了
#3
Toomj2011-05-22 12:09
帮顶哈···
1