• c++代码:文件的读写实现_txt文本数据流


    数据的输出保存

    在c++中实现文件的读写

    当设计到与文件相关的操作时

    首先要代码的开头添加一个标准库

    #include<fstream>

    通过该库内含的构造函数foutput进行输出文件 

    std::ofstream foutput(" "); 

    这里我们声明一个数组,将数组的内容输出到txt文本中。

     int numbers[] = { 1,3,4,5,12312,534,64 };

    通过循环遍历的方式将每一个值输出到文件中,这里需要先获取数组的长度。通过sizeof进行计算。

    int arr_size = sizeof(numbers) / sizeof(numbers[0]); 

    循环每一项

    for (int i = 0; i < arr_size; i++) {
            foutput << numbers[i] << "\n";
        } 

    结束后不要忘记关闭文件

     foutput.close();

     最后运行代码看下效果

    1. #include<iostream>
    2. #include<fstream>
    3. int main() {
    4. int numbers[] = { 1,3,4,5,12312,534,64 };
    5. std::ofstream foutput("output.txt");
    6. int arr_size = sizeof(numbers) / sizeof(numbers[0]);
    7. for (int i = 0; i < arr_size; i++) {
    8. foutput << numbers[i] << "\n";
    9. }
    10. foutput.close();
    11. return 0;
    12. }

     可以看到最后将数组中的每个元素,按行排列付给foutput进行输出到本地保存为output.txt文件

    数据的读入计算

    在对数据完成了输出保存之后,我们如何实现数据的读入并计算和呢。

    与前面一样,先通过ifstream对文件进行读取

    std::ifstream finput("output.txt"); 

    然后我们需要定义初始值计算和存储变量

    int sum = 0, temp = 0; 

    通过遍历,判断非空,计算累加数值

    while (!finput.eof()) {
            finput >> temp;
            sum += temp;
        }

     打印结果

    std::cout << "The total:" << sum << std::endl;

    最后也是要关闭文件

    finput.close(); 

    完整代码如下:

    1. #include<iostream>
    2. #include<fstream>
    3. int main() {
    4. int numbers[] = { 1,3,4,5,12312,534,64 };
    5. std::ofstream foutput("output.txt");
    6. int arr_size = sizeof(numbers) / sizeof(numbers[0]);
    7. for (int i = 0; i < arr_size; i++) {
    8. foutput << numbers[i] << "\n";
    9. }
    10. foutput.close();
    11. std::ifstream finput("output.txt");
    12. int sum = 0, temp = 0;
    13. while (!finput.eof()) {
    14. finput >> temp;
    15. sum += temp;
    16. }
    17. std::cout << "The total:" << sum << std::endl;
    18. finput.close();
    19. return 0;
    20. }

     结果图如下:

     会发现计算的结果多加了一次最后的数字

    如果可以修改代码进行判断

    1. #include<iostream>
    2. #include<fstream>
    3. int main() {
    4. int numbers[] = { 1,3,4,5,12312,534,64 };
    5. std::ofstream foutput("output.txt");
    6. int arr_size = sizeof(numbers) / sizeof(numbers[0]);
    7. for (int i = 0; i < arr_size; i++) {
    8. foutput << numbers[i] << "\n";
    9. }
    10. foutput.close();
    11. std::ifstream finput("output.txt");
    12. int sum = 0, temp = 0;
    13. //while (!finput.eof()) {
    14. // finput >> temp;
    15. // sum += temp;
    16. // temp = 0;
    17. //}
    18. while (true) {
    19. if (finput >> temp) {
    20. sum += temp;
    21. }
    22. else {
    23. break;
    24. }
    25. }
    26. std::cout << "The total:" << sum << std::endl;
    27. finput.close();
    28. return 0;
    29. }

    最终得到以下结果 

     

     

  • 相关阅读:
    爬虫第二次笔记 解编码 使用get请求方式和post请求方式
    netty根据业务场景(IO密集型、CPU密集型)优化线程模型
    金仓数据库 KingbaseGIS 使用手册(6.21. 长事务支持)
    Kubernetes基础命令
    C语言——程序环境和预处理
    Python 教程之控制流(12)组合迭代器
    FPGA可重配置原理及实现(1)——导论
    CAS与自旋锁、ABA问题
    Spring快速上手
    linux操作系统期末考试题库
  • 原文地址:https://blog.csdn.net/qq_34904125/article/details/125466200