Reputation: 15
My program reads the values for this incorrectly.. There is the same problem with when I try to get the values from this infile:
14, 14, 8, 0.4, 16, 2.0, 1.7, 7, 4.7, 0.23, 0.44, 290, 350
16, 16, 10, 0.5, 17, 2.2, 1.8, 8, 5.4, 0.27, 0.5, 310, 370
18, 18, 11, 0.5, 18, 2.2, 2.0, 9, 6.0, 0.30, 0.56, 320, 380
20, 20, 12, 0.5, 19, 2.3, 2.2, 9.5, 6.4, 0.32, 0.59, 330, 390
22, 22, 13, 0.5, 20, 2.4, 2.4, 10, 6.7, 0.33, 0.63, 340, 410
24, 24, 14, 0.5, 21, 2.5, 2.5, 11, 7.4, 0.37, 0.69, 350, 420
27, 27, 16, 0.6, 22, 2.6, 2.8, 11.5, 7.7, 0.38, 0.72, 370, 450
30, 30, 18, 0.6, 23, 2.7, 3.0, 12, 8.0, 0.40, 0.75, 380, 460
35, 35, 21, 0.6, 25, 2.8, 3.4, 13, 8.7, 0.43, 0.81, 400, 480
40, 40, 24, 0.6, 26, 2.9, 3.8, 14, 9.4, 0.47, 0.88, 420, 500
45, 45, 27, 0.6, 27, 3.1, 3.8, 15, 10.0, 0.50, 0.94, 440, 520
50, 50, 30, 0.6, 29, 3.2, 3.8, 16, 10.7, 0.53, 1.00, 460, 550
into this code
float a [12][13]; //begins the array so the input file can be read
int i, j;
for (i=0; i<12; i++)
{
for (int j=0; j<13; j++)
soft>>a[i][j];
}
int m=0;
while(a[m][0]!= type && m<12)
{
m++;
}
bendingStrength = a[m][1];
tensionParallel = a[m][2];
tensionPerpindicular = a[m][3];
compressionParallel = a[m][4];
compressionPerpindicular = a[m][5];
shearStrength = a[m][6];
elasticityParallel = a[m][7];
elasticityParallelFive = a[m][8];
elasticityPerpindicular = a[m][9];
shearModulus = a[m][10];
density = a[m][11];
meanDensity = a[m][12];
Upvotes: 1
Views: 330
Reputation: 2646
float a [6][13]; // Begins the array to read the values from the hardwood file
int i;
for (i=0; i<6; i++)
{
for (int j=0; j<13; j++)
hard>>a[i][j];
}
The above might work if there were no commas in-between every number , however, your file (at least the one posted above) has all of the values separated by a comma..I believe this is messing up your ability to read in the correct values..(also not sure why you declare int i;
)
Try code below as an alternative..
float a [6][13]; // Begins the array to read the values from the hardwood file
float value;
char comma;
for (i=0; i<6; i++)
{
for (int j=0; j<13; j++){
hard>>std::ws>>value; //get value from file ignoring whitespace
a[i][j] = value;
hard>>std::ws>>comma; //ignore commas and whitespace
}
}
The second part of your question has the same problems really...you arn't taking into account the commas... You have like before..
float a [12][13]; //begins the array so the input file can be read
int i, j;
for (i=0; i<12; i++)
{
for (int j=0; j<13; j++)
soft>>a[i][j];
}
You should have...
float a [12][13]; // Begins the array to read the values from the hardwood file
float value;
char comma;
for (i=0; i<12; i++)
{
for (int j=0; j<13; j++){
soft>>std::ws>>value; //get value from file ignoring whitespace
a[i][j] = value;
if(j != 12){ //dont ignore the comma for last entry on line bc no comma there
soft>>std::ws>>comma; //ignore commas and whitespace
}
}
}
Upvotes: 3