file input in hic
DESCRIPTION
File Input in HiC. Run menu Set Input File… Load Input Input (Interactive) (Batch) OK We want to know how to do it ourselves, right?. Review: Standard Input/Output Stream. // Header file #include int size; float avg; cin >> size; // cin: Standard input stream - PowerPoint PPT PresentationTRANSCRIPT
File Input in HiC
• Run menu• Set Input File… • Load Input• Input (Interactive)• (Batch)• OK
We want to know how to do it ourselves, right?
1
Review: Standard Input/Output Stream
// Header file#include <iostream>
int size; float avg;
cin >> size;// cin: Standard input stream // >>: input operator
cout << "Average is " << avg; // cout: standard output stream// <<: output operator
2
Header File <iostream>
// Input streamclass istream{private: // Members:
public: bool eof(); void get(char& x); void getline(char s[], int size, char endChar); …};
istream cin;// Variable of istream// connecting cin to keyboard
3
Header File <iostream>
// Output streamclass ostream{private: // Members
public: bool good(); bool fail(); …};
ostream cout;// Variable of ostream// connecting cout to monitor
4
Standard Error Stream
cerr << “Error message.”;
// cerr: Standard error stream
// always go to monitor
// Not working in HiC
5
Header File for File I/O
// File Stream#include <fstream>
// Input File Streamclass ifstream{ …};
// Output File Streamclass ofstream{ …};
6
Class ifstream// File Stream#include <fstream>
class ifstream{private: . . .public: void open(const char fileName[]); // HiC cannot use C++ string for fileName bool good(); bool fail(); void close(); bool eof(); void get(char& x); …}; 7
Class ofstream
// File Stream#include <fstream>
class ofstream{private: . . .public: void open(const char fileName[]); // Not C++ string void close(); bool good(); bool fail(); …};
8
#include <fstream>// Defines class ifstream and ofstream
int main(){ // use any identifiers you want ifstream MyInput; ofstream yourOutFile; ifstream p7_File, cin_redirect; ofstream P6Out, cout_redirect;
. . .
return 0;}
File Input/Output
9
#include <fstream>
int main(){ ifstream MyInput;
// Open file // void open(const char fileName[]); MyInput.open(“P6.IN"); // P6.IN is in the same folder as the source file
MyInput.open(“J:\\P6.IN"); // P6.IN could be any where // Escape char ‘\’
// Do work
MyInput.close(); // void close(); // No parameter!
return 0;}
File Input/Output
10
#include <iostream> #include <fstream>
int main(){ ifstream MyInput;
MyInput.open(“P6.IN");
// Check open operation if (!MyInput.good()) cout << "Error: Cannot open input file";
return 0;}
Checking Open Operation
11
#include <iostream> #include <fstream>
int main(){ ifstream MyInput;
MyInput.open(“P6.IN");
// Check open operation if (MyInput.fail()) { cout << "Error: Cannot open input file"; return 1; }
// Do work
return 0;}
Checking Open Operation
12
#include <iostream> #include <fstream>
int main(){ ifstream MyInput; ofstream yourOutFile;
MyInput.open(“P6.IN"); if (MyInput.fail()) { cout << "Error: Cannot open input file!"; return 1; }
yourOutFile.open(“p6.out”); if (!yourOutFile.good()) { cout << "Error: Cannot open output file!"; return 1; }
…
return 0;}
File Input/Output
13
#include <iostream> #include <fstream>
int main(){ ifstream MyInput; ofstream yourOutFile;
MyInput.open(“P6.IN"); yourOutFile.open(“P6.out”);
// Check open file
int x; MyInput >> x; // cin >> x; while (!MyInput.eof()) // cin.eof() { // process data x ++; // output to file yourOutFile << x; // cout << x;
// read the next value MyInput >> x; } return 0;}
File Input/Output
14
#include <iostream>#include <fstream>
int main(){ ifstream MyInput; ofstream yourOutFile; int x;
MyInput.open(“P6.IN"); yourOutFile.open(“p6.out”); if (MyInput.fail() || !yourOutFile.good()) { cout << "Error: Cannot open files!"; return 1; }
MyInput >> x; while (!MyInput.eof()) { x ++; yourOutFile << x;
MyInput >> x; }
MyInput.close(); yourOutFile.close();
return 0;}
File Input/Output
15
// DO_01: Include header file for file I/O
int main(){ // DO_02: declare variables for file I/O
// DO_03: open file
// DO_04: Check open operation
// DO_05: Read value from a file
// DO_06: Fill condition: read until the end of file while ( ) { // DO_07: Output value to a file }
// DO_08: Close files
}
File Input/Output
16
int main(){ char x;
cin.get(x); while(!cin.eof()) { if (x == ' ') // process a space else if (x == '\n') // process a new line char else // process a regular char
cin.get(x); }
return 0;}// cin >> x will skip all white spaces.// cin.get() will read in white spaces.
Function get()
17
int main(){ char x; ifstream MyInput(“P6.in");
MyInput.get(x); while(!MyInput.eof()) { if (x == ' ') // process a space else if (x == '\n') // process a new line char else // process a regular char
MyInput.get(x); }
return 0;}// MyInput >> x will skip all white spaces.// MyInput.get() will read in white spaces.
Function get()
18
#include <iostream>#include <fstream>
int main(){ char file_name[21]; // Cannot use data type string for file_name ifstream MyInput; cout << “Enter input file name: ”; cin >> file_name;
MyInput.open(file_name); // MyInput.open(“P6.IN"); // MyInput.open(“file_name”); NO!
// Check open operation if (!MyInput.good()) { cout << "Error: Cannot open input file!"; return 1; }
// Do work
MyInput.close();
return 0;}
Input File Name
19
int main(){ ifstream MyInput;
if (!OpenFile(MyInput)) return 1;
// Do work
return 0;}
bool OpenFile(ifstream& inFile){ char file_name[21]; cin >> file_name; inFile.open(file_name);
if (!inFile.good()) { cout << "Error: Cannot open input file"; return false; } else return true;}
File Stream as Function Parameter
20
Schedule
Quiz9–3
9 AM, Monday
Test 3
Next Monday
Final Exam
7:00-8:52 pm, Thursday, May 19, 2011, Doudna 103
21
Test 3
• Classes
data members (fields)
constructors
methods• Selection Sorting• File I/O• Enumeration data type• C String (Array of char )
22