| | |
Passing infile values??
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Jul 2008
Posts: 26
Reputation:
Solved Threads: 0
This program needs to read the infile and calculate the temperatures for each function. I can only get it to output 0's. Can someone explain the steps needed to make this code work correctly? What am I missing? Should I be passing by reference? If so how??
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int getData();
double averageHigh();
double averageLow();
double indexHighTemp();
double indexLowTemp();
int i, j;
double hsum = 0, lsum = 0;
double avgh, avgl;
double high = 0, low = 0;
int ind;
int const row = 2, col = 12, num = 12;
double temp[row][col];
int main()
{
cout <<"Processing Data"<<endl;
getData();
averageHigh();
averageLow();
indexHighTemp();
indexLowTemp();
cout <<" "<<endl;
system("PAUSE");
return 0;
}
int getData()
{
ifstream inFile;
inFile.open ("c:\\Ch9_Ex9Data.txt");
if (!inFile)
{
cout << "Unable to open input file!"<<endl;
return 1;
}
inFile >> high >> low;
}
double averageHigh()
{
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
hsum = (hsum + (temp[0][i]));
}
}
avgh = hsum / 12;
cout << "Average high temperature: ";
cout << avgh <<endl;
return 0;
}
double averageLow()
{
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
lsum = (lsum + (temp[1][i]));
}
}
avgl = lsum / 12;
cout << "Average low temperature: ";
cout << avgl << endl;
return 0;
}
double indexHighTemp()
{
ind = 0;
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
if (high <= (temp[0][i]))
{
high = (temp[0][i]);
ind = i;
}
}
}
cout << "Highest temperature: ";
cout << (temp[0][ind]) << endl;
return 0;
}
double indexLowTemp()
{
ind = 0;
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
if (low >= (temp[1][i]))
{
low = (temp[1][i]);
ind = i;
}
}
}
cout << "Lowest temperature: ";
cout << (temp[1][ind]) << endl;
return 0;
} Look at your function getData(). It isn't reading the data from the file -- all it is reading is two numbers called low and high. What its supposed to do is read all the numbers into the array temp. You will have to add a loop so that it can do that.
Don't PM me with questions -- you might get a nasty PM in response. If you have a question then post it in one of the forums.
•
•
Join Date: Jul 2008
Posts: 26
Reputation:
Solved Threads: 0
Ok, I have narrowed it down to me needing a while loop. But I am having trouble understanding how to use it correctly. Can someone give me an example of a while loop that reads from a one column in a txt infile and reads to the end?
Here is what I came up with-
infile example:
34 -12
30 -21
32 -18
40 -5
52 10
75 32
Here is what I came up with-
infile example:
34 -12
30 -21
32 -18
40 -5
52 10
75 32
while (inFile)
{
if (row = 0; row < 13; row++)
{
inFile >>high >> low;
}
if (col = 0; col < 13; col++)
{
inFile>>high >>low; does the file contain those dashes you posted ? If not, then just do something like this:
you have the rows and columns of that temp array backwards. row should be 12 and columns should be 2. You want the array to look something like this:
C++ Syntax (Toggle Plain Text)
while( inFile >> temp[i][0] >> temp[i][1]) { ++i; }
you have the rows and columns of that temp array backwards. row should be 12 and columns should be 2. You want the array to look something like this:
C++ Syntax (Toggle Plain Text)
Col1 Col2 |------|-------| |------|-------| |------|-------| |------|-------| |------|-------| |------|-------| |------|-------| |------|-------| |------|-------| |------|-------| |------|-------| |------|-------|
Last edited by Ancient Dragon; Jul 31st, 2008 at 1:22 pm.
Don't PM me with questions -- you might get a nasty PM in response. If you have a question then post it in one of the forums.
![]() |
Similar Threads
- First program in a long time, need help (C++)
- Script only displaying last entries made (Perl)
- passing linked lists through functions?? (C++)
Other Threads in the C++ Forum
- Previous Thread: iterate a 3d vector
- Next Thread: creating a map having set as an element
| Thread Tools | Search this Thread |
api array arrays based binary c++ c/c++ calculator char char* class classes code coding compile console conversion count database delete deploy desktop developer directshow dll download dynamic dynamiccharacterarray email encryption error file forms fstream function functions game givemetehcodez google graph gui homeworkhelp iamthwee ifstream input int integer java lib linkedlist linker linux list loop looping loops map math matrix memory multiple news number numbertoword output pointer problem program programming project python random read recursion recursive reference return rpg sorting string strings temperature template templates test text text-file tree unix url variable vector video visual visualstudio win32 windows winsock wordfrequency wxwidgets






