当前位置:   article > 正文

fstream ifsteam ofstream 介绍及其读写文件_fstream英文

fstream英文

fstream,ifstream和ofstream是C++标准库中的类,它们用于文件I/O操作。

fstream是一个基类,它同时具有继承自ifstream和ofstream的特征,可以同时进行输入和输出操作。

ifstream是从istream类派生的,专门用于输入文件。它从一个已打开的文件中读取数据,可以读取各种数据类型,包括字符、字符串、整数、浮点数等等。

ofstream是从ostream类派生的,专门用于输出文件。它向一个已打开的文件中写入数据,可以写入各种数据类型,包括字符、字符串、整数、浮点数等等。

使用这些类时,需要包含相应的头文件,例如使用ifstream类需要包含<fstream>头文件。同时,也需要确保打开文件时已经指定了正确的文件路径和文件名。

举个栗子:

  1. #include "iostream"
  2. #include <string>
  3. #include <fstream>
  4. using namespace std;
  5. // 利用ofstream 对文件进行write操作;
  6. // 定义一个名为 ofstream_files 的函数,该函数接受一个 string 类型的参数 files
  7. void ofstream_files(string files){
  8. // 创建一个 ofstream 对象,名为 outf,打开由参数 files 指定的文件,并以输出模式打开(即如果文件存在则清空内容,如果文件不存在则创建新文件)
  9. std::ofstream outf(files, std::ios::out);
  10. // 定义一个字符串变量,名为 str,并初始化为 "scores-------------:"
  11. std::string str = "scores-------------:";
  12. // 检查文件是否成功打开(即 is_open() 函数返回 true)
  13. if (outf.is_open()) {
  14. // 如果文件成功打开,则向文件写入一行字符串和两个浮点数(0.9 和 0.8),两者之间以空格分隔,行末添加换行符
  15. outf << str + " " + std::to_string(0.9) + "\n";
  16. outf << str + " " + std::to_string(0.8) + "\n";
  17. // 写入完成后关闭文件
  18. outf.close();
  19. } else {
  20. // 如果文件无法打开(即 is_open() 函数返回 false),则向控制台输出一条消息:"Unable to open file"
  21. std::cout << "Unable to open file";
  22. }
  23. }
  24. // 利用ifstream getline对文件进行read操作;
  25. // 定义一个名为 ifstream_files_1 的函数,该函数接受一个 string 类型的参数 files
  26. void ifstream_files_1(string files)
  27. {
  28. // 输出消息到控制台,表示此函数开始执行
  29. cout << "ifstream_1---------------------------" << endl;
  30. // 创建一个 ifstream 对象,名为 inf,打开由参数 files 指定的文件,并以输入模式打开(即只能读取文件,不能写入文件)
  31. std::ifstream inf(files, std::ios::in);
  32. // 检查文件是否成功打开(即 is_open() 函数返回 true)
  33. if (inf.is_open())
  34. {
  35. // 定义一个字符串变量,用于逐行读取文件内容
  36. std::string line;
  37. // 使用 getline 函数从文件中逐行读取内容,直到到达文件末尾
  38. while (std::getline(inf, line)) {
  39. // 将读取到的每一行内容输出到控制台
  40. std::cout << line << std::endl;
  41. }
  42. // 读取完成后关闭文件
  43. inf.close();
  44. }
  45. }
  46. // 利用ifstream 插入符 对文件进行read操作;
  47. void ifstream_files_2(string files){
  48. // 创建一个 ifstream 对象,名为 inf,打开由参数 files 指定的文件,并以输入模式打开(即只能读取文件,不能写入文件)
  49. std::ifstream inf(files, std::ios::in);
  50. // 输出消息到控制台,表示此函数开始执行
  51. cout << "ifstream_2---------------------------" << endl;
  52. // 检查文件是否成功打开(即 is_open() 函数返回 true)
  53. if(inf.is_open()){
  54. // 循环读取文件直到到达文件末尾
  55. while(!inf.eof()) {
  56. // 声明一个字符串变量 s
  57. // int v;
  58. string s;
  59. // 从文件中读取一个字符串到s变量中
  60. inf >> s;
  61. // 将 s 变量的内容输出到控制台
  62. std::cout << s << endl;
  63. }
  64. }
  65. // 读取完成后关闭文件
  66. inf.close();
  67. }
  68. void fstream_pro(string exam_file)
  69. {
  70. std::fstream file(exam_file, std::ios::in | std::ios::out); // 以输入/输出方式打开文件
  71. std::string line;
  72. if (!file.is_open()){
  73. cout << "failed";
  74. }
  75. while (std::getline(file, line)) { // 逐行读取
  76. std::cout << line << "read line over\n"; // 输出每一行
  77. // string str = "read over!";
  78. //
  79. }
  80. file.close(); // 关闭文件
  81. std::fstream sfile(exam_file, std::ios::app); // 以输入/输出方式打开文件
  82. sfile << "read" << endl; // 写入字符串到文件
  83. sfile << "over" << endl; // 写入字符串到文件
  84. sfile.close(); // 关闭文件
  85. }
  86. int main()
  87. {
  88. //对example.txt 文件进行操作
  89. string file = "./exam.txt";
  90. // ofstream
  91. ofstream_files(file);
  92. // // ifstream
  93. ifstream_files_1(file);
  94. ifstream_files_2(file);
  95. // fstream
  96. fstream_pro(file);
  97. return 0;
  98. }


水平有限,有问题随时交流;
欢迎一键三连!

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/300506
推荐阅读
相关标签
  

闽ICP备14008679号