Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 637
  • Last Modified:

Problem writing C++ Program that use data files for input and output.

Hello,

I seem to be stuck writing this program that inputs a series of 12 temperatures from the user. It should write out on the file "tempdata.dat" each temperature and the difference between the current temperature and the one preceeding it. The differne is not  output for the first temperature this is input. At the end of the program, the average temperature should be displayed for the user via cout. Here's the given input data:

34.5  38.6  42.4  46.8  51.3  63.1  60.2  55.9  60.3  56.7  50.3  42.2  

File tempdata.dat would contain:

34.5

38.6   4.1

42.2   3.8

46.8   4.4

51.3   4.5

63.1   11.8

60.2   -2.9

55.9   -4.3

60.3   4.4

56.7   -3.6

50.3  -6.4

42.2  -8.1

This is what I have come up with so far but I got stuck as to what to do next about the computation in getting the difference between the temperatures. Can someone please help.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    // Declare and open files
    ifstream inData;
    ofstream outData;
   
    inData.open("tempdata.dat")
    outData.open("tempdata.out")
   
    //Read in data from file inData
    inData >> 34.5 >> 38.6 >> 42.4 >> 46.8 >> 51.3 >> 63.1 >> 60.2 >>
           >> 55.9 >> 60.3 >> 56.7 >> 50.3 >> 42.2;
   
    //Output information in required formats
0
DeaconRev2
Asked:
DeaconRev2
1 Solution
 
ozoCommented:
Do you understand how the >> operator works?
0
 
itsmeandnobodyelseCommented:
It seems to me that you yoou didn't read the requirements correctly ....

>>>> that inputs a series of 12 temperatures from the user.

I would say you would need a loop to get 12 temperatures from the user, something like

   for (int i=0; i < 12; ++i)
   {
        // prompt for input
     
        // read input from cin to  temperature array at position i
   }

>>>> It should write out on the file "tempdata.dat" each temperature and the difference
>>>> between the current temperature and the one preceeding it.

That means that you need a further loop where you output the temperature array at position j and the difference between temperature array at position j and  temperature array at position j-1. Note, for the latter you have to check that i is greater 0.

   // open tempdata.dat for output

   for (int j=0; j < 12; ++j)
   {
        // output to file temperature array at position j  + space separator  
        // if j > 0 output to file temperature array at position j - temperature array at position j - 1
   }

>>>> At the end of the program, the average temperature should be displayed for the user via cout.

Make another loop and add all temperature values from array. Then output the stotal divided by 12.

Regrads, Alex
0

Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now