| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 552 人关注过本帖
标题:关于一个输入流的问题,请教朋友们
只看楼主 加入收藏
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
收藏
 问题点数:0 回复次数:5 
关于一个输入流的问题,请教朋友们

D:\\votes.txt 比如文件为:colin 5000
make 3000
kelin 4000
--------

想输出票数最高的名字:

可达不到效果

麻烦看一下!
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;

int main()
{
const MAX=5;
char name;
int votes;
int highvotes;

ifstream inflie("D:\\votes.txt");


if(!inflie)
{
cerr<<"The inputfile does not exist."
<<"program terminates!"<<endl;
return 1;
}


inflie>>name>>votes;
highvotes=votes;

vector<char> vect;
vector<char>::iterator iter=vect.begin();

while(inflie)
{
if(votes>highvotes)
{
if(iter!=vect.end()-1)
vect.pop_back();
vect.push_back(name);
highvotes=votes;
iter++;
}
else if(votes==highvotes)
{
if(iter!=vect.end()-1)
vect.push_back(name);
iter++;
}
else
{
cerr<<"Stack overflow program terminates"<<endl;
return 1;
}
inflie>>name>>votes;
}

cout<<"Highest votes:"<<highvotes<<endl;
cout<<"the winner:";
while(!vect.empty())
{
name=vect.back();
vect.pop_back();
cout<<name<<endl;
}
cout<<endl;
return 0;
}

搜索更多相关主题的帖子: 朋友 输入 
2006-03-28 20:16
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

[CODE]#include<iostream>
#include<string>
#include<fstream>
#include<vector>
using namespace std;

int main()
{
string name;
int votes;
int highvotes;

ifstream inflie("D:\\votes.txt");
if(!inflie.is_open())
{
cerr<<"The inputfile does not exist."
<<"program terminates!"<<endl;
return 1;
}

vector<string> vect;
inflie>>name>>highvotes;
vect.push_back(name);

while(inflie>>name>>votes)
{
if(votes > highvotes)
{
vect.clear();
vect.push_back(name);
highvotes = votes;
}
else if(votes == highvotes)
{
vect.push_back(name);
}
}

cout<<"Highest votes:\n"<<highvotes<<endl;
cout<<"the winner:\n";
while(!vect.empty())
{
name=vect.back();
vect.pop_back();
cout<<name<<endl;
}
system("pause");
return 0;
}[/CODE]


2006-03-29 12:00
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
1。name不能是char,可以写成string什么的。
2。为什么搞得这么复杂?你只要最高的票拿1个name,1个vote就够了,每次读出来的值跟他们比较。没有必要用vector呀?所有的数push_back之后没有用就直接扔掉了。
3.最后pop_back()的一段不必写。

http://myajax95./
2006-03-29 12:41
师妃暄
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:805
专家分:107
注 册:2006-3-1
收藏
得分:0 

恩...我是想用容易来尝试一下.

谢谢woodhead和everajax的解答..

你们的两种方法我都试了.

不过everajax:name为什么不能是char而是string ?

什么时候用string 呢?


有实力才会有魅力 实力来自坚持不懈的努力
2006-03-29 13:15
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
因为colin,kelin都不只一个字母,所以没法用一个char呀。

http://myajax95./
2006-03-29 13:48
llmagiccc
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-29
收藏
得分:0 

我用下面的方法:
开两个数组
第一个存字符串
第二个存数字
进行第二个数组的比较
这样就可以找到最大的数字所对应的字符串
然后输出就可以了

2006-03-29 14:15
快速回复:关于一个输入流的问题,请教朋友们
数据加载中...
 
   



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

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