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

如果正确 ,会追加分的,谢谢

#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;

 

 

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

 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-18
首先 确保你文件中保存的只是 有效数,即是否全部是数字 ,数字的大小有没有越界 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;
}
}
}
}
第2个回答  2012-07-18
是的,读取文本内容到数组中,然后在内存中排序。最后写到文件。
你是c++还是vc?vc的话用mfc的类库很简单
第3个回答  2012-07-18
应该先读出,才能够进行排序
相似回答