| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 583 人关注过本帖
标题:怎么用 vector 储存 字符
只看楼主 加入收藏
charderkk
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-8-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
怎么用 vector 储存 字符
  请问 想要把一篇文章读入vector中,如下
  vector<string> passage;
  string x;
  cout<<"Please input one passage:"<<endl;
  while(cin>>x)
      passage.push_back(x);
但是用cmd运行时,怎么才能使系统知道文章已经结束,有什么比较简单的方法吗?
  谢了
搜索更多相关主题的帖子: 一篇文章 
2011-01-21 22:24
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:20 
这个和C++无关,各个平台使用不同的方式结束输入,有的是 Ctrl^z,有的是 Ctrl^D,……
2011-01-22 08:20
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
正如楼上所言。
2011-01-22 11:27
charderkk
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-8-24
收藏
得分:0 
回复 2楼 rjsp
可是怎么确定自己的平台是什么方式呢
2011-01-22 19:26
charderkk
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-8-24
收藏
得分:0 
回复 3楼 pangding
  #include<iostream>
  #include<string>
  #include<vector>
 
  using std::cout;   using std::cin;
  using std::string; using std::vector;
  using std::endl;   
  typedef vector<string>::size_type vec_sz;
  
  int main(){
  vector<string> passage;
  string x;
  cout<<"Please input one passage:"<<endl;
  while(cin>>x)
      passage.push_back(x);

  vec_sz  count=0,size=passage.size();
  cout<<"The passage is:";
  for(count=0;count!=size;count++)
  cout<<passage[count];
  return 0;
  }   
试了一下 我的系统结束输入是ctrl^c,
但用cmd运行该程序时,每次都会出现不同结果:想问下是什么原因

E:\cpp>test
Please input one passage:
safsadfsdfasdfsadfsdfsf42sa3f41
The passage is:safsadfsdfasdfsadfsdfsf42sa3f41

E:\cpp>test
Please input one passage:
safsadfsdfasdfsadfsdfsf42sa3f41
The passage is:^C

E:\cpp>test
Please input one passage:
safsadfsdfasdfsadfsdfsf42sa3f41
The passage is:safsadfsdfasdfsadfsdfsf42sa3f41^C
2011-01-22 20:09
charderkk
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-8-24
收藏
得分:0 
借贴求问
  #include<iostream>
  #include<string>  
  #include<vector>
  #include<algorithm>

  using namespace std;
  typedef vector<double>::size_type vec_sz;
  
  int main(){
  vector<string> passage;
  vector<double> numble;
  string x;
  cout<<"Please input one passage:"<<endl;
  cin>>x;
  while(x!="0"){
      passage.push_back(x);
      cin>>x;
  }
  vec_sz count,size=passage.size();

  cout<<"The original passage is:"<<endl;
  for(count=0;count!=size;count++){
      cout<<passage[count];
  }  
  /*for(count=0;count!=size;count++)
      numble[count]=passage[count].size();*/
  for(count=0;count!=size;count++)
      cout<<numble[count];
  sort(numble.begin(),numble.end());
  for(count=0;passage[count].size()==numble[0];count++)
      cout<<"The shortest words are:"<<passage[count]<<endl;
  for(count=0;passage[count].size()==numble[size-1];count++)
      cout<<"The longest words are:"<<passage[count]<<endl;
  return 0;
  }



return 0;
}
  为什么编译可以通过  但是一运行就错误,觉得/* 之间那句有问题,但是考虑后面要对字符长度进行排序,不这样不好办,请各位高手指点,非常感谢。
2011-01-22 23:52
快速回复:怎么用 vector 储存 字符
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.081554 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved