PDA

نسخه کامل مشاهده نسخه کامل : cin.getline



Reyhaneh1.6
24-12-2012, 21:53
سلام . با این که cin.getline گذاشتم اما فک کنم تابعم مشکل داره که بیشتر از 10 کاراکتر نمی خونه . لطفا کمکم کنید.
#include "stdafx.h"#include <iostream>
#include <cmath>
#include <string>
const long size=1000;
using namespace std;
void HextoDecimal(char x[],long Arraysize);
int _tmain(int argc, _TCHAR* argv[])
{
char number[100];

cin.getline(number,100);
HextoDecimal(number,100);
return 0;
}


void HextoDecimal(char x[],long Arraysize)
{
long i=0,j,m,p;
long sum=0;
long A[size];
int B[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
while(x[i]!='\0')
i++;


for(j=0;j<i;j++)
{
switch(x[j])
{
case'a':
A[j]=B[10];
break;
case'b':
A[j]=B[11];
break;
case'c':
A[j]=B[12];
break;
case'd':
A[j]=B[13];
break;
case'e':
A[j]=B[14];
break;
case'f':
A[j]=B[15];
break;
case'0':
A[j]=B[0];
break;
case'1':
A[j]=B[1];
break;
case'2':
A[j]=B[2];
break;
case'3':
A[j]=B[3];
break;
case'4':
A[j]=B[4];
break;
case'5':
A[j]=B[5];
break;
case'6':
A[j]=B[6];
break;
case'7':
A[j]=B[7];
break;
case'8':
A[j]=B[8];
break;
case'9':
A[j]=B[9];
break;
default:
cout<<"error in switch of Convert Hex to Decimal";
break;
}
}
p=0;
for(m=i-1;m>=0;m--)
{
sum=sum+A[m]* pow(16.0,p);
p++;
}
cout<<sum<<endl;
}