zoukankan      html  css  js  c++  java
  • [转]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行代码,就是刷新缓存,并关闭文件。

    运行的结果如下所示:

  • 相关阅读:
    python信息收集(二)
    python信息收集(一)
    'utf-8' codec can't decode byte 0xd3 in position 0: invalid continuation byte
    Loadruner 之 controller 负载生成器与场景运行——性能测试
    chromedriver 在pycharm 中的使用
    selenium 安装
    在Linux 中搭建 Mysql
    前端攻略
    2020-5-22 第二期——拖延症
    2020-5-15 第一期
  • 原文地址:https://www.cnblogs.com/freeliver54/p/2554173.html
Copyright © 2011-2022 走看看