c++中,怎么将文本文件中的数进行排序 是不是要先读取到数组中 求大神 给出代码,急求!!!

如果正确,会追加分的,谢谢... 如果正确 ,会追加分的,谢谢 展开
 我来答
fledging
推荐于2017-09-20 · 超过24用户采纳过TA的回答
知道答主
回答量:138
采纳率:0%
帮助的人:47万
展开全部

#include <iostream>

#include <vector>

#include <fstream>

using namespace std;

int main()

{

 ifstream fin("data.txt");  //文件路径加文件名

 ofstream fout("data_out.txt");//输出文件路径加文件名

 vector<int> num;

 int i;

 while(fin>>i)

  num.push_back(i);

 for(vector<int>::iterator index_one=num.begin();index_one!=num.end();++index_one)

  for(vector<int>::iterator index_two=index_one+1;index_two!=num.end();++index_two)

   if(*index_one<=*index_two){

    int x=*index_one;

    *index_one=*index_two;

    *index_two=x;

   }

 for(vector<int>::iterator index=num.begin();index!=num.end();++index)

  fout<<*index<<" ";

 return 0;

 

 

//可排任意多个数字(降序,稍微修改可升序),文本文档里面的数字需要以空格分开 

 

读书人读书生心8526
2012-07-18 · TA获得超过7.2万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:3974万
展开全部
首先 确保你文件中保存的只是 有效数,即是否全部是数字 ,数字的大小有没有越界 r
如果你所有的数据都是有效的,把数字读取进内存中,选个合适的排序算法,就你的需求
如果文件中纪录的数据不多,可以一次读进内存中那么比较简单,如果数据很多,那要使用
外部排序算法。顺便送你个 冒泡法排序代码
//
#define NUMBER_COUNT 10
-(void)BubbleSort//冒泡
{
int iTmp = 0;
for (int i = 0; i < NUMBER_COUNT ; i++)
{
for (int j = NUMBER_COUNT -1; j>0; j--)
{
if (iArray[j ] > iArray[j-1])
{
iTmp = g_iArray[j ];
g_iArray[j ] =g_ iArray[j -1];
g_ iArray[j-1 ] = iTmp;
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_HappyEnding
2012-07-18 · TA获得超过830个赞
知道小有建树答主
回答量:633
采纳率:0%
帮助的人:276万
展开全部
是的,读取文本内容到数组中,然后在内存中排序。最后写到文件。
你是c++还是vc?vc的话用mfc的类库很简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秦王20110717
2012-07-18
知道答主
回答量:7
采纳率:0%
帮助的人:1.1万
展开全部
应该先读出,才能够进行排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式