Help - Search - Members - Calendar
Full Version: OT - C++ question.
914World.com > The 914 Forums > 914World Garage
Jeff Krieger
Does anyone know how to modify this small program that I wrote in C++ so that for every cout statement there is a statement that writes the exact same information to the file accelfig.txt? I use this program to generate acceleration values and write them to accelfig.txt and then I read these acceleration values into another program that I wrote that numerically integrates these figures to calculate 0 to 60 mph and 1/4 mile times, speed at the end of the 1/4 mile, maximum hp, 60 mph to 0 braking distance etc. I use the free C++ compiler from http://www.bloodshed.net/dev/devcpp.html .


//CalcAccl1

#include < iostream.h >
#include < stdio.h >

// This program calculates 30 seconds worth of acceleration values, assumed
// to be in ft/s^2, and writes them to the file accelfig.txt.

main()
{ FILE *fp;

int counter;

double acceleration = 0, time = 0;

fp = fopen("accelfig.txt", "w");

for (counter = 0; counter <= 1600; counter++)
{
acceleration = time + 10;
fprintf(fp, "%20.10f\n", acceleration);
cout << "\nThe acceleration at " << time << " seconds is " << acceleration << '\n';
time = time + 0.0025;
}

for (counter = 1601; counter <= 4800; counter++)
{
acceleration = 14;
fprintf(fp, "%20.10f\n", acceleration);
cout << "\nThe acceleration at " << time << " seconds is " << acceleration << '\n';
time = time + 0.0025;
}

for (counter = 4801; counter <= 12000; counter++)
{
acceleration = 62 - 4*time;
fprintf(fp, "%20.10f\n", acceleration);
cout << "\nThe acceleration at " << time << " seconds is " << acceleration << '\n';
time = time + 0.0025;
}


fclose(fp);
}
SirAndy
here you go:
Jeff Krieger
I get an error message when I try to open it with my compiler.
john rogers
I tried the code and it works fine as the data goes into the file looks the same as what is on the screen. There is only the numeric data, no text, if that is what you want? I used Microsoft Devstudio 6.0 and it went fine?
SirAndy
all you need to do is to put this line in your code after each line of cout:

fprintf(fp, "\nThe acceleration at %f seconds is %f\n", time, acceleration);

back to work ...

edit: i did not try to compile it, i assumed you had it running BEFORE you posted here ...
Brad Roberts
Went fine for me also..

Alfred... he wouldnt post a virus infected on his own server for everyone on the BBS to dowload. Think past the anger ...


B
SirAndy
QUOTE(Jeff Krieger @ May 13 2003, 05:16 PM)
I get an error message when I try to open it with my compiler.

did the initial version compile? i only added 3 lines and a few tabs ...
Jeff Krieger
Ok, I copied and pasted that one line into my program and it seems to work perfectly. Thanks, Andy, I appreciate it.
krk
If you want to use ostream fiiles the same way you use cout, you have to do a few includes, and set the output stream up. Once set up, you use it just like cout, except it's heading to a file.

Or, if you want the mundane approach, you could always switch back to C. Oops, I see you have. :-)


#include
#include
#include

main()
{
// open a file for outpout
ofstream oFile("newoutput.txt", ios::out);

// check to make sure it worked
if ( !oFile ) { //open failed?
cerr << "open failed" << endl;
exit (-1);
}

// write something to it

oFile << "The horsepower at " << "etc" << endl;

return 0;
}

This worked on GCC last time I tried it. (does it look familar? :-)

love kim.
krk
hmm.. tabs disappear on posting. Interesting.

kim.
Qarl
Buncha computer geeks! I use to know that crap. Not any longer.

Have fun!

tongue.gif

Karl
krk
QUOTE(krk @ May 13 2003, 05:23 PM)
I


#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>


So this is wierd. (I wonder if it's the browser I'm using) The include names don't appear for me (i.e. where "#include " is writtten, I see "#include") I've left them in the quoted section to see what I see.

kim.
krk
QUOTE(krk @ May 13 2003, 05:42 PM)
QUOTE(krk @ May 13 2003, 05:23 PM)
I


#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>


So this is wierd. (I wonder if it's the browser I'm using) The include names don't appear for me (i.e. where "#include <crap>" is writtten, I see "#include") I've left them in the quoted section to see what I see.

kim.

test.
krk
So the <>'s appear in quoted text to me, but not in "regular" text.

Anyone else seeing this?

kim.
SirAndy
QUOTE(krk @ May 13 2003, 06:44 PM)
So the <>'s appear in quoted text to me, but not in "regular" text.

Anyone else seeing this?

kim.

yepp, cause in regular posts (not qoutes) your brackets indicate HTML keywords, which are stripped out by the browser for display wink.gif
Jeff Krieger
QUOTE(krk @ May 13 2003, 06:23 PM)
If you want to use ostream fiiles the same way you use cout, you have to do a few includes, and set the output stream up. Once set up, you use it just like cout, except it's heading to a file.

Or, if you want the mundane approach, you could always switch back to C. Oops, I see you have. :-)


#include
#include
#include

main()
{
   // open a file for outpout
   ofstream oFile("newoutput.txt", ios::out);

   // check to make sure it worked
   if ( !oFile ) { //open failed?
       cerr << "open failed" << endl;
       exit (-1);
   }

   // write something to it

   oFile << "The horsepower at " << "etc" << endl;

   return 0;
}

This worked on GCC last time I tried it. (does it look familar? :-)

love kim.




Andy's way is much easier - besides, I just wanted to be able to write the output to a text file so I could check for errors more easily.

QUOTE
This worked on GCC last time I tried it. (does it look familar? :-)

Are you Kim the lady mathematician? Hey, do you know why a negative ... ah forget it.
Jeff Krieger
QUOTE(krk @ May 13 2003, 06:44 PM)
So the <>'s appear in quoted text to me, but not in "regular" text.

Anyone else seeing this?

kim.

Just leave an extra space on each end e.g., < iostream.h >.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2024 Invision Power Services, Inc.