C++: Reading Data and Outputting Data

2019-08-25 18:58发布

I'm attempting to write two methods. One, ReadData(istream&) to read in student's ID number, first and last names, 10 program scores, and midterm and exam scores(last two integers) and returns true if all data was read successfully, false otherwise, and one, WriteData(ostream&) to write the data that was read in to a new file in the same order listed above.

I am completely new to file reading and writing so any and all help is much appreciated. The data I am using looks like this...(made up names and scores)

10601   ANDRES HYUN 88 91 94 94 89 84 94 84 89 87 89 91 
10611   THU ZECHER 83 79 89 87 88 88 86 81 84 80 89 81 
10622   BEVERLEE WAMPOLE 95 92 91 96 99 97 99 89 94 96 90 97 
10630   TRUMAN SOVIE 68 73 77 76 72 71 72 77 67 68 72 75 

So far I have...

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

ifstream ReadData;
ReadData.open("filename.txt");
if ReadData... ///Not sure how to make it return true or false 
ReadData.close();

ostream WriteData;
for (k=0,k<101,k++)
//how do you output to a new file from here?
WriteData.close();

2条回答
干净又极端
2楼-- · 2019-08-25 19:17

Use these for better control (handle could be ReadData or WriteData e.t.c):

if( handle.is_open() ) .. // checks if file is open or closed
if( handle.good() ) .. // checks if stream is ready for input/output 
if( handle.bad() ) .. // checks if read/write operation failed
if( handle.fail() ) .. // same as bad, but catches format error
if( handle.eof() ) .. // returns true if opened file has reached the "end of file"

Possible way to output data:

WriteData.write(buffer, size); // char *buffer, int size (of buffer)

Another:

for(int i = 0; i<size; ++i) WriteData<<buffer[i];

If the data is in a string you can just do:

WriteData << str;

There is a great tutorial here on c++ and files.

查看更多
Explosion°爆炸
3楼-- · 2019-08-25 19:32

For file reading:

if(ReadData.is_open()) .... // check if file is open

Output: just like cout: Like input, you must .open(..) a new file before you can write in it

ofstream WriteData;
WriteData.open("Output.txt");
WriteData << "Hello World!\n"; //Prints Hello World!
查看更多
登录 后发表回答