c++_getline()和istringstream的用法

/**

  getline(int,s)为从输入文件流中读入一行数据,放入string变量s中.

   由于整行地读入,读入到s中时,文件中的每个换行符都丢掉了.

*/

 

//istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。

 

运行环境: C++Builder6

 

//---------------------------------------------------------------------------

 

#include <vcl.h>

#pragma hdrstop

 

//---------------------------------------------------------------------------

 

#pragma argsused

#include<iostream>

#include<fstream>

#include<sstream>

#include<vector>

using namespace std;

 

vector<vector<int> > input();

void mySort(vector<vector<int>>& a);

void print(constvector<vector<int> >& a);

int main(int argc, char* argv[])

{

//创建一个二维向量

vector<vector<int> > a =input();

//对向量进行排序

mySort(a);

print(a);

 

system("pause");

return 0;

}

 

//---------------------------------------------------------------------------

/**

初始化向量

*/

vector<vector<int> > input(){

 

ifstream in("aaa.txt");

vector<vector<int> > a;

/**

  getline(int,s)为从输入文件流中读入一行数据,放入string变量s中.

   由于整行地读入,读入到s中时,文件中的每个换行符都丢掉了.

*/

for(string s; getline(in, s);){

  vector<int> b;

  //istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。

  istringstream sin(s);

  for(int ia; sin>>ia;){

      b.push_back(ia);

   }

  a.push_back(b);

}

return a;

}

//---------------------------------------------------------------------------

 

void mySort(vector<vector<int>>& a){

 

for(int pass = 1; pass<a.size();pass++){

  for(int i=0; i<a.size()-pass; i++){

    if(a[i+1].size()<a[i].size()){

      a[i].swap(a[i+1]);

    }

   }

}

}

   //---------------------------------------------------------------------------

void print(constvector<vector<int> >& a){

for(int i=0; i<a.size(); i++){

   for(int j=0;j<a[i].size(); j++){

     cout<<a[i][j]<<" ";

    }

   cout<<endl;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值