C++文件IO操作的简单示例
CppIODemo1.cpp
#include <iostream> #include <fstream> #include <chrono> #define INPUT_BUFFER_SIZE 1024 * 1024 int main() { using namespace std; cout << "Type an input file name: "; string filename; getline(cin, filename); ifstream ifs(filename, ifstream::in | ifstream::binary); if (ifs) { cout << "Type an output file name: "; getline(cin, filename); ofstream ofs(filename, ofstream::out | ofstream::binary); if (ofs) { cout << "Copying file..." << endl; char buffer[INPUT_BUFFER_SIZE]; chrono::system_clock::time_point startTime = chrono::system_clock::now(); while (!ifs.eof()) { streamsize numberOfCharacters = ifs.read(buffer, INPUT_BUFFER_SIZE).gcount(); ofs.write(buffer, numberOfCharacters); } chrono::system_clock::time_point endTime = chrono::system_clock::now(); float elapsedTime = static_cast<chrono::duration<float, ratio<1, 1>>>(endTime - startTime).count(); cout << "File copied, elapsed time: " << elapsedTime << endl; } else cerr << "Cannot open output file: '" << filename << "'!" << endl; } else cerr << "Cannot open input file: '" << filename << "'!" << endl; return 0; }
CppIODemo2.cpp
#include <iostream> #include <fstream> #define INPUT_BUFFER_SIZE 1024 * 1024 int main() { std::cout << "Enter an input file name: "; std::string filename; std::getline(std::cin, filename); std::ifstream ifs(filename, std::fstream::in); if (ifs.is_open()) { std::cout << "Enter an output file name: "; std::getline(std::cin, filename); std::ofstream ofs(filename, std::fstream::out); if (ofs.is_open()) { char buffer[INPUT_BUFFER_SIZE]; while (!ifs.eof()) { std::streamsize numberOfCharacters = ifs.read(buffer, INPUT_BUFFER_SIZE).gcount(); std::cout.write(buffer, numberOfCharacters); ofs.write(buffer, numberOfCharacters); } } else std::cout << "Cannot open file: " << filename << std::endl; } else std::cout << "Cannot open file: " << filename << std::endl; return 0; }
附带一句:http://en.cppreference.com,此站点为C/C++权威参考手册^_^若不习惯英文,可浏览此站点的中文版http://zh.cppreference.com