首页 > 代码库 > File Input and Output
File Input and Output
Use of File Stream
Assume ifle and ofile is the string object storing the names of input and output files‘ namess.
string ifile = "inputFile.txt";string ofile = "outputFile.txt";
Then the use of file stream is like this:
// construct an ifstream and bind it to the file named ifileifstream infile(ifile.c_str());// ofstream output file object to write file named ofileofstream outfile(ofile.c_str());
Also, we can define unbound input and output file stream first, and then use open function to boud the file we‘ll access:
ifstream infile; // unbound input file streamofstream outfile; // unbound output file streaminfile.open("in"); // open file named "in" in the current directoryoutfile.open("out"); // open file named "out" in the current directory
After opening the file, we need to check if it is successful being opened:
// check that the open succeededif(!infile){ cerr << "error: unable to open input file: " << infile << endl; return -1;}
Rebound File Stream with New File
If we want to bound the fstream with another file, we need to close the current file first, and then bound with another file:
ifstream infile("in"); // open file named "in" for readinginfile.close(); // closes "in"infile.open("next"); // open file named "next" for reading
Clear File Stream Status
Opening all file names in a string vector, one direct version is:
vector<string> files;...vector<string>::const_iterator it = files.begin();string s; // string buffer // for each file in the vectorwhile(it != files.end()){ ifstream input(it->c_str()); // open the file // if the file is ok, read and "process" the input if(!input) break; // error: bail out! while(input >> s) // do the work on this file process(s); ++it; // increament iterator to get next file}
More efficient way but with much more accurate operation version:
ifstream input;vector<string>::const_iterator it = files.begin();// for each file in the vectorwhile(it != files.end()){ input.open(it->c_str()); // open the file // if the file is ok, read and "process" the input if(!input) break; // error: bail out! while(input >> s) // do the work on this file process(s); input.close(); // close file when we‘re done with it input.clear(); // reset state to ok ++it;}
File Input and Output
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。