|
-
January 14th, 2007, 04:56 PM
#1
Problem with arrays
I am trying to take numbers from a text file and then do some math with them, but I am having some difficulty saving the numbers from the text to an array. Every time it saves a number from the array it replaces all the numbers in the array with the new number. I think that part of the problem is that the text file contains both text and numbers, so I have to call the input from the text char instead of int.
#include <iostream>
#include <fstream.h>
#include <string>
#include <cmath>
using namespace std;
int main()
{
int n;
int m;
int q;
int pair;
int p;
double position;
int w;
char * x[2000];
char * y[2000];
char * z[2000];
float theta;
float l;
float h;
float r;
double i;
double dist[2];
char output[10];
//Opens the text document
fstream protein;
protein.open("c:\\Ferretin.txt",ios::in);
if (!protein)
{
cout << "unable to open file\n";
}
position=0;
//Takes words and numbers from the text document
while (protein>>output)
{
//Takes the sixth number from each column of the text
if (floor((position-5)/11)==(position-5)/11)
{
w=(position-5)/11;
x[w]=output; //Saves the number to the array
}
cout << x[100]<<"\t"<<x[101]<<"\n"; //x[100] changes everytime the code is looped, but it should stay the same.
if (floor((position-6)/11)==(position-6)/11)
{
w=(position-6)/11;
y[w]=output; //Gets cartesian coordinates
}
if (floor((position-7)/11)==(position-7)/11)
{
w=(position-7)/11;
z[w]=output; //Gets cartesian coordinates
}
position=position+1;
}
protein.close();
//The code below this point seems to work fine.
q=1;
l=1;
for (n=1;n<10;n=n+1)
{
for (m=n+1;m<10;m=m+1)
{
dist[q]=sqrt(double(x[n]-x[m])*(x[n]-x[m])+(y[n]-y[m])*(y[n]-y[m])+(z[n]-z[m])*(z[n]-z[m]));
cout <<dist[q] <<"\t"<< q<< "\t"<<n<<"\t"<< m<<"\t"<< x[w]<<"\t"<< x[1401]<<"\n";
q=q+1;
};
};
theta=0.01;
cout << theta << "\n";
for (theta=0.001;theta<1.570796;theta=theta+0.1)
{
i=0;
h=4*3.1415926*sin(theta)/l;
for (pair=1;pair<q;pair=pair+1)
{
i=i+4*3.1415926*sin(h*dist[pair])/(h*dist[pair]);
};
cout << dist[1] << "string" << i << "\n";
ofstream scattering("c:\\scattering.txt", ios::app);
scattering << i << "\n";
};
cin >> p;
cout << dist[q] << "string" << i << "\n";
return 0;
}
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|