Hi,
I am using the following code to convert character array in file to integer.
However, the problem is that there is only one place in the file where it does not convert the character array to integer correctly.
Since my code is big, i am pasting the most relevant part.
if(c == 'n')
{
if((c=getc(fp)) == 'e')
{
if((c=getc(fp)) == 't')
{
c=getc(fp); // For the '_' after net.
arr1 = new char[3];
int i = -1;
while(1)
{
c=getc(fp); // Get the number.
cout << "c = " << c << " ; ";
if(c == ';' || c == ' ' || c == ',' || c == ')' || c == '=' || c == '<')
{
cout << "c2 = " << c << " ; ";
break;
}
else
{
i = i + 1;
cout << "c1 = " << c << " ; ";
arr1[i] = c;
}
}
numo = atoi(arr1);
//sscanf (arr,"%d",&numo);
delete arr1;
keep.insert(numo);
cout << " NET num = " << numo << endl;
}
}
}
in the file :
not( net_2584, net_2546);
not( net_2585, net_2499);
not( net_2586, net_2490);
not( net_2587, net_2474);
not( net_2588, net_2502);
not( net_2589, net_2505);
not( net_2590, net_2507);
It reads 2490 as 24900.
I do not understand why.
Is there a better way to convert a character array to integer when the size of character array is not known before hand.
Any help is appreciated. Thanks.