C++编程问题!!
读取一个名称为“a.txt”的文本文件,此文件中有若干行数字信息,每行的结尾都有换车换行符。文件中的数字信息逐行读出后,按从小到大顺序排列后,写入“b.txt”文本文件中。
如“a.txt”文件中存有下列信息
1
15
0
程序的运行结果为:将下列信息写入“b.txt”中
0
1
15
补充:请高人给个简单的程序代码,本人新手菜鸟一个,刚刚入门...
追问:请问那句while语句什么意思?
读取一个名称为“a.txt”的文本文件,此文件中有若干行数字信息,每行的结尾都有换车换行符。文件中的数字信息逐行读出后,按从小到大顺序排列后,写入“b.txt”文本文件中。
如“a.txt”文件中存有下列信息
1
15
0
程序的运行结果为:将下列信息写入“b.txt”中
0
1
15
补充:请高人给个简单的程序代码,本人新手菜鸟一个,刚刚入门...
追问:请问那句while语句什么意思?
答案:#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
int main(){
string filename("a.txt");
int temp,str;
vector<int> vec;
ifstream infile(filename.c_str());
if(!infile){
cerr<<"cant't open the file!"<<endl;
return 0;
}
while(infile>>str){
vec.push_back(str);
}
if(vec.size()>1){ //长度大于1则进行冒泡排序
for(vector<int>::iterator ivec=vec.begin();ivec!=vec.end();++ivec){
for(vector<int>::iterator ivec1=vec.begin();ivec1!=vec.end();++ivec1){
if((*ivec)-(*ivec1)<0){
temp=*ivec;
*ivec=*ivec1;
*ivec1=temp;
}
}
}
}
ofstream outfile("b.txt");
for(vector<int>::iterator ivec=vec.begin();ivec!=vec.end();++ivec){
outfile<<(*ivec)<<"\n";
}
outfile.close();
}
新手写的,功能实现了,呵呵
C++忘得差不多了,给个C的吧。
#include <stdio.h>
#include <stdlib.h>
#define MAXLINE 3
int comp(const void *a,const void *b)
{
return *(int*)a-*(int*)b;
}
int main()
{
FILE* a,*b;
int nums[MAXLINE],i;
a=fopen("a.txt","r");
b=fopen("b.txt","w");
for(i=0;i<MAXLINE;i++)
fscanf(a,"%d",nums+i);
qsort(nums,MAXLINE,sizeof(int),comp);
for(i=0;i<MAXLINE;i++)
fprintf(b,"%d\n",nums[i]);
fcloseall();
return 0;
}
#include <fstream>
#include <algorithm>
int main()
{
std::ifstream imp ("a.txt");
if (!imp) return 1;
short int array[3];
imp >> array[0] >> array[1] >> array[3];
std::sort (&array[0],&array[3]);
std::ofstream exp ("b.txt");
const char* const nlcr = "\n\r";
exp << array[0] << nlcr << array[1] << nlcr << array[2];
return 0;
}
没编译过,不知道能不能通过
上一个:JAVE和C++区别大吗?
下一个:C++的优势~