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

 

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

 

代码如下:

 

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

下面一行一行解读代码:

首先说明一下头文件,头文件中<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行代码,就是刷新缓存,并关闭文件。

 

运行的结果如下所示:


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值