构造及文件打开与否的判断
构造
const std::string filename; std::ofstream ofs(filename); // C++11 std::ofstream ofs(filename.c_str()); // before C++11
文件打开成功与否的判断
std::ifstream ifs(filename); if (!ifs) // if (!ifs.good()) { std::cerr << "cannot open the input file \"" << filename << "\"" << std::endl; exit(EXIT_FAILURE); }
从文件流中读数据的方式
std::ifstream ifs(filename);
assert(ifs.good());
逐字符
char c; while (ifs.get()) std::cout << c;
逐行
std::string line; while (std::getline(ifs, line, '\n')) // std::getline()的头文件在 <string> std::cout << line << std::endl;
逐单词(以空格为分割)读取
std::string word; while (ifs >> word) std::cout << word << std::endl;
临时创建的文件流
std::ofstream("./1.txt") << "hello";
std::ofstream("./1.txt", std::ios::app) << " world!" << std::endl;
std::ifstream ifs("./1.txt");
assert(ifs.good());
std::string line;
while (std::getline(ifs, line, '\n'))
std::cout << line << std::endl;