求个代码,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;
}
#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
void read_file(vector<int> &data);//读文件“input”,写入data
void sort(vector<int> &data);//对data的数据从小到大排列
void write_file(const vector<int> &data);//写入文件“output”中