VG101 RECITATION 10 By TAs
VG101 RECITATION 10 By TAs
CONTENTS o File I/O o Pointer in database design o About final exam Q&A
CONTENTS File I/O Pointer in database design About final exam Q & A
FILE I/O 0 void mainO #include #include #include 0 ifstream infile; using namspace std; 0 string fileName; File modes 0 cin >fileName; To use.c_str0, 0 infile.open(fileName.c_str0,ios::in); you need to 0 if(infile.fail() Check before using include this cout <"File "<fileName <<don't exist\n"; return; 多 else { 0 cout <<"Open file "<fileName <<success\n"; 0 } 。}
FILE I/O void main() { ifstream infile; string fileName; cin >> fileName; infile.open(fileName.c_str(), ios::in); if(infile.fail()) { cout #include #include using namespace std; File modes To use .c_str(), you need to Check before using include this
FILE I/O o File modes: ios:in:opens a file for input ios:out:opens a file for output ios:app:appends all output to the end of the file ios:ate:opens a file for output.If the file already exists,move to the end of the file. ios::truct:discards the file's contents if the file already exists.(default action for ios::out) ios::binary:opens a file for binary input and output
FILE I/O File modes: ios::in: opens a file for input ios::out: opens a file for output ios::app: appends all output to the end of the file ios::ate: opens a file for output. If the file already exists, move to the end of the file. ios::truct: discards the file’s contents if the file already exists. (default action for ios::out) ios::binary: opens a file for binary input and output
FILE I/O o To use file modes: infile.open(fileName.c_strO,ios::in); outfile.open(fileName.c_str0,ios::app); o You'll need ios::app in most cases if you don't want to overwrite your file data. o For more file modes or useful functions,look up ICP book,chapter 12,or use zhidao.baidu.com
FILE I/O To use file modes: infile.open(fileName.c_str(), ios::in); outfile.open(fileName.c_str(), ios::app); You’ll need ios::app in most cases if you don’t want to overwrite your file data. For more file modes or useful functions, look up ICP book, chapter 12, or use zhidao.baidu.com
FILE I/O o Check before using any file stream object o For input: 。if(infile.failO)∥handle this exception o For output: ·ifstream infile; ●ofstream outfile; .infile.open(fileName.c_strO); ·if(!infile.fail0) 。{ cout <"File "<fileName <already exists\n"; cout <<"Do you want to overwrite it?\n"; ·/handle user's reply ·}
FILE I/O Check before using any file stream object For input: if(infile.fail()) // handle this exception For output: ifstream infile; ofstream outfile; infile.open(fileName.c_str()); if( ! infile.fail() ) { cout << "File " << fileName << " already exists\n"; cout << "Do you want to overwrite it?\n"; // handle user's reply }
FILE I/O o Alternative way for output check,using file modes: o If you want to append the new data to the end of the original file: outfile.open(fileName.c_str0,ios::app); ·if(outfile.failO)∥handle this exception o If you want to erase the old data in the file and write the new data into it: outfile.open(fileName.c_strO); 。if(outfile..failO)l∥handle this exception
FILE I/O Alternative way for output check, using file modes: If you want to append the new data to the end of the original file: outfile.open(fileName.c_str(), ios::app); if(outfile.fail()) // handle this exception If you want to erase the old data in the file and write the new data into it: outfile.open(fileName.c_str()); if(outfile.fail()) // handle this exception
FILE I/O o String and char*: o Some functions in C++are written in C,so these functions don't recognize string class. oUse“.c_str0”to convert a string to char* infile.open(fileName.c_str0,ios::in); o You need to include if you want to use this function as well as many other string functions
FILE I/O String and char*: Some functions in C++ are written in C, so these functions don’t recognize string class. Use “ .c_str() ” to convert a string to char* infile.open(fileName.c_str(), ios::in); You need to include if you want to use this function as well as many other string functions
POINTER IN DATABASE DESIGN o Why we use pointer: o 1.Pointer is just a variable of an address,it points to an space in memery,so it's space saving. o 2.A teacher may teach several courses,a classroom may be used by several courses.By using pointer,an object can be referenced by N other objects without creating N objects
POINTER IN DATABASE DESIGN Why we use pointer: 1. Pointer is just a variable of an address, it points to an space in memery, so it’s space saving. 2. A teacher may teach several courses, a classroom may be used by several courses. By using pointer, an object can be referenced by N other objects without creating N objects
POINTER IN DATABASE DESIGN o 3.If we change teacher A through pointer in course B,when we look through pointer in course C,teacher A is also changed o 4.Using pointer allows us to dynamically add new objects by“new”keyword o 5.Pointer form a web of relationship between unique objects,just as the real world
POINTER IN DATABASE DESIGN 3. If we change teacher A through pointer in course B, when we look through pointer in course C, teacher A is also changed 4. Using pointer allows us to dynamically add new objects by “new” keyword 5. Pointer form a web of relationship between unique objects, just as the real world