首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求个代码,c++读取txt,并列序其中的数字,一行一个数字就行了

2013-06-26 
求个代码,c++读取txt,并排序其中的数字,一行一个数字就行了求个代码,c++读取txt,并排序其中的数字,一行一

求个代码,c++读取txt,并排序其中的数字,一行一个数字就行了
求个代码,c++读取txt,并排序其中的数字,一行一个数字就行了,排序完了,重新输入到文件。
谁有现成的?
[解决办法]
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;


int main()
{
//读文件
fstream readfile("123.txt",ifstream::in);

//写入容器
vector<int> numbers;
int i = 0;
while(readfile>>i)
numbers.push_back(i);

readfile.close();


//排序
sort(numbers.begin(),numbers.end());

//写文件
fstream writefile("123.txt",ofstream::out);

for(vector<int>::iterator it = numbers.begin();it!= numbers.end();it++)
writefile<<*it<<endl;

writefile.close();
return 0;

}

[解决办法]


#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>

int main(int argc, _TCHAR* argv[])
{
    std::istream_iterator< int > inputer(std::cin), inputend;
    std::vector<int> data;
    std::copy( inputer, inputend, std::back_insert_iterator< std::vector<int> > ( data ) );
    std::sort( data.begin(), data.end() );
    std::ostream_iterator< int> outputer(std::cout, "\n");
    std::copy( data.begin(), data.end(), outputer );
    return 0;
}


int_sorter < input.txt > output.txt
[解决办法]
http://blog.csdn.net/mougaidong/article/details/9039401
[解决办法]

#include <iostream>
#include <vector>
#include <cstdio>
#include <stdlib.h>
#include <algorithm>

using namespace std;

void read_file(vector<int> &data);
void sort(vector<int> &data);
void write_file(const vector<int> &data);

int main()
{
  vector<int> data;
  read_file(data);
  sort(data);
  write_file(data);
  return 0;
}

//read the data from the input file
void read_file(vector<int> &data)
{
  FILE *fp = fopen("input", "r");
  if(NULL == fp)
  {
    cout<<"file does not exist"<<endl;
    exit(1);
  }

  while(!feof(fp))
  {
    char word[100];
    fgets(word, 20, fp);


    int i = atoi(word);
    data.push_back(i);
  }
  fclose(fp);
}

//sort data
void sort(vector<int> &data)
{
  std::sort(data.begin(), data.end());
}

//write the data to the output file
void write_file(const vector<int> &data)
{
  char buff[1024];
  FILE *fp = fopen("output", "w");

  vector<int>::const_iterator it = data.begin();
  while(it != data.end())
  {
    sprintf(buff, "%d\n", *it); 
    fputs(buff, fp);
    ++it;
  }

  fclose(fp);
}


[解决办法]

#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

int main(){
ifstream in("number.txt", ios::in);
vector<int> vec;
int num;
while(in >> num) vec.push_back(num);
in.close();
sort(vec.begin(), vec.end());
ofstream out("number.txt", ios::out);
for(vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) out<<*it<<endl;
out.close();
return 0;
}

[解决办法]

#include <iostream> 
#include <vector>
#include <algorithm>
#include <iterator>


int main(int argc, char** args)
{
std::vector<double> c;
std::istream_iterator<double> start(std::cin), end;
std::copy(start, end, std::back_inserter(c));
std::sort(c.begin(), c.end());
std::copy(c.begin(), c.end(), std::ostream_iterator<double>(std::cout, "\n"));
    return 0;
}
//用法:
//test.exe < input.txt > output.txt

[解决办法]
网上搜一大堆,但是不如自己写
[解决办法]
引用:
Quote: 引用:


#include <iostream>
#include <vector>
#include <cstdio>
#include <stdlib.h>
#include <algorithm>

using namespace std;

void read_file(vector<int> &data);
void sort(vector<int> &data);
void write_file(const vector<int> &data);

int main()
{
  vector<int> data;
  read_file(data);
  sort(data);
  write_file(data);
  return 0;
}

//read the data from the input file
void read_file(vector<int> &data)
{
  FILE *fp = fopen("input", "r");
  if(NULL == fp)
  {
    cout<<"file does not exist"<<endl;
    exit(1);
  }


  while(!feof(fp))
  {
    char word[100];
    fgets(word, 20, fp);
    int i = atoi(word);
    data.push_back(i);
  }
  fclose(fp);
}

//sort data
void sort(vector<int> &data)
{
  std::sort(data.begin(), data.end());
}

//write the data to the output file
void write_file(const vector<int> &data)
{
  char buff[1024];
  FILE *fp = fopen("output", "w");

  vector<int>::const_iterator it = data.begin();
  while(it != data.end())
  {
    sprintf(buff, "%d\n", *it); 
    fputs(buff, fp);
    ++it;
  }

  fclose(fp);
}



data怎么初始化?


有三个方法:

void read_file(vector<int> &data);//读文件“input”,写入data
void sort(vector<int> &data);//对data的数据从小到大排列
void write_file(const vector<int> &data);//写入文件“output”中


运行前要在当前目录下新建input文件:如下
123
1231
234
1
23
34234
2
123

热点排行