当前位置:编程学习 > C/C++ >>

C++编程问题!!

读取一个名称为“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++的优势~

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,