• [转]C++按行读取文本文件


    本文转自:http://blog.csdn.net/syunqiang/article/details/6425302

    很多初学C++的同学,对于读取文本文件,并按照行处理数据总是有点不知如何开始,作为C++的初学者,自己在这里做一点笔记。

    其实利用C++按行读取文本文件其实很简单。假设有一个文本文件,如下所示:

    1 2 3
    2 3 4
    3 4 5
    5 6 7
    7 8 9

    文件名为split.txt

    目的:按照行读取数据,并一个个的显示出来。

    代码如下:

    1. #include <iostream>
    2. #include <sstream>
    3. #include <fstream>
    4. #include <string>
    5. int main(int args, char **argv)
    6. {
    7. std::ifstream fin("split.txt", std::ios::in);
    8. char line[1024]={0};
    9. std::string x = "";
    10. std::string y = "";
    11. std::string z = "";
    12. while(fin.getline(line, sizeof(line)))
    13. {
    14. std::stringstream word(line);
    15. word >> x;
    16. word >> y;
    17. word >> z;
    18. std::cout << "x: " << x << std::endl;
    19. std::cout << "y: " << y << std::endl;
    20. std::cout << "z: " << z << std::endl;
    21. }
    22. fin.clear();
    23. fin.close();
    24. return 0;
    25. }

    下面一行一行解读代码:

    首先说明一下头文件,头文件中<iostream>, <string>的作用就不用说了,<fstream>是定义文件的需要的头文件,而<sstream>是字符串流stringstream所需要的头文件。

    第8行: std::ifstream fin("split.txt", std::ios::in); 定义读取的文本文件。

    第9行: char line[1024] = {0}; 用于定义读取一行的文本的变量。

    第10--12行,定义了 x y z 三个字符串变量,用于存放读取一行数据后,分别存放每行的三个数据。

    第13--22行,用一个循环读取每行数据,读取行的函数是getline()函数,然后利用stringstream将每行文本自动按照空格分列,并分别存放到对应的三个字符串变量中。

    23、24行代码,就是刷新缓存,并关闭文件。

    运行的结果如下所示:

  • 相关阅读:
    第十三周课程总结
    第十二周课程总结
    第十一周课程总结
    第十周课程总结
    第九周课程总结 & 实验报告(七)
    第八周课程总结 & 实验报告(六)
    第七周课程总结 & 实验报告(五)
    第六周总结 & 实验报告(四)
    课程总结
    第十四周课程总结&实验报告(简单记事本的实现)
  • 原文地址:https://www.cnblogs.com/freeliver54/p/2554173.html
Copyright © 2020-2023  润新知