Hi all, I have some snippet of code which is to take simbol by simbol from the file c:\\mnrf2.txt and set them into the array x[i2]. Instead of returning single simbol it returns two ones, could anyone help me how to do that it returns only one symbol. Data in the file:
64208400
76307712
64201912
63867925
64201730
63208159
64208063
63201464
this is the code:
Code:
#include <iostream.h>
#include <fstream.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int input;
int neu;
float m[100][100][100];
ifstream in;
ofstream out;
int elem;
int i2;
char *x[100];
float p[100][100];
int it;
double ran_n;
double min_p;
char ch[8];
unsigned char *split[40];
double t_constant;
double Radius1;
double Radius;
double xmin;
double xmax;
double ymin;
double ymax;
double L0;
double L;
double Teta;
double m_d_radius;
int jw;
int kw;
float circle_res;
float xx;
float assign_random ()
{ float tt =(rand())/((float)RAND_MAX+1);
return ( tt);}
float circle (int num1,int kw,int num2,int jw)
{
float circle_change=sqrt((num1-kw)*(num1-kw)+(num2-jw)*(num2-jw));
return(circle_change);}
double sqr2(double number)
{ double p=number;
return(p*p);}
float dis (float y2, float y1,int stepen)
{ long double p=y2-y1;
for (int u=1;u<=stepen;u++)
{p=p*2/100;}
return(p);}
float w_next (float w0,float xi,float pjk,float Radius2,float L)
{
float Teta=exp(-(pjk/(2*Radius2*Radius2)));
float w= w0+L*Teta*(w0-xi);
return(w);
}
int massive (char *array, int num_elements)
{
for (int q=1;q<num_elements;q++)
{
array++;
}
return(*array);
}
void main()
{
input=8;
neu=5;
it=5;
//L0=StrTodouble(Edit4->Text);
L0=0.2;
m_d_radius=neu/2;
t_constant= it/(log10( m_d_radius));
//initialization of inputs
for (int j=1;j<=neu;j++)
{
for (int k=1;k<=neu;k++)
{
for (int i=1;i<=input;i++)
{
m[i][j][k]= assign_random();
cout<<"m[i][j][k] = "<<m[i][j][k]<< '\n';
}}}
/////////////////////////////////////
///////cycle of iterations ////////////////////
for (int b=1;b<= it;b++)
{
Radius1= m_d_radius*exp(-(b/ t_constant));
L=L0*exp(-(b/ t_constant));
Radius=floor(Radius1);
out<<"radius = "<<Radius1<< '\t'<<Radius<< '\n';
i2=1;
in.open("c:\\mnrf2.txt");
//out.open("c:\\vectors.txt");
while (!in.eof())
{
in.getline(ch,8);
x[1]=strtok(ch,"");
cout<<*x[1]<<'\n';
break;
//for (int i=2;i<=input;i++)
// {
// x[i]=strtok(NULL,"");
// if(x[i]==NULL)
// { break;}
// cout<<*x[i]<<'\t';
// }
// cout<<'\n';
//to remove then cure bracket
// for (int j=1;j<=neu;j++)
//{
//for (int k=1;k<=neu;k++)
//{
// p[j][k]=0;
//for (int i=1;i<=input;i++)
//{
// p[j][k]=p[j][k]+dis(x[i],m[i][j][k],input-i);
// }
//
// }
// }
// min_p=p[1][1];
// jw=1;
// kw=1;
// for (int j=1;j<=neu;j++)
// {
// for (int k=1;k<=neu;k++)
//{
// if (p[j][k]<min_p)
// {min_p=p[j][k];
// jw=j;
// kw=k; }
// }
// }
// printf("winner = %f",min_p,'\t',"jw=",jw,'\t',"kw=",kw,'\n');
//Radius defining///////////////////
// xmin=kw- Radius;
// xmax=kw+Radius;
// ymin=jw-Radius;
// ymax=jw+Radius;
// for (int j=ymin;j<=ymax;j++)
// {
// for (int k=xmin;k<=xmax;k++)
// {
// circle_res=circle(k,kw,j,jw);
// if (circle_res<= Radius)
// {
// for (int i=1;i<=input;i++)
// {
// m[i][j][k]= w_next ( m[i][j][k],x[i],p[j][k],Radius,L);
//m[i][j][k]= m[i][j][k]+L*Teta*(m[i][j][k]-x[i]);
// }
// }
// }
// }
// }
// }
i2++;
}
in.close();
}
//out.close();
}