Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Работа с файлами


Автор: nefestim 29.1.2008, 20:14
Вот код:

Код

#include "stdafx.h"
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
bool Mycompare ( string elem1, string elem2 )
{
    return elem1 > elem2;
}
int _tmain(int argc, _TCHAR* argv[])
{
/*
  ifstream c("input.txt");
  ofstream d("output2.txt");
  char e[255];
  char **aa, **bb;
  int j, m;
// Первоначальное отведение памяти
  m=10;
  aa = new char*[m];
  int i=0;
  if (c.is_open()) {
    for (; !c.eof();) {
      c.getline(e, 254);
      aa[i]=new char[strlen(e)+1];
      strcpy(aa[i], e);
      i++;
      if (i>=m) {
// Отведение дополнительной памяти
        bb = new char*[m+10];
        for (j=0; j<m; j++) bb[j]=aa[j];
        m+=10;
        delete [] aa;
        aa = new char*[m];
        for (j=0; j<m-10; j++) aa[j]=bb[j];
        delete [] bb;
      }
    }
// сортировка
    int n;
    char *w;
    for (int k=0; k<i-1; k++) {
      n=k;
      for (int l=k+1; l<i; l++) if (strcmp(aa[n], aa[l])<0) n=l;
      if (n>k) {
        w=aa[k];
        aa[k]=aa[n];
        aa[n]=w;
      }
    }
// вывод
    for (j=0; j<i; j++) d<<aa[j]<<endl;
// освобождение памяти
    for (j=0; j<i; j++) delete [] aa[j];
    delete [] aa;
  }
  c.close();
  d.close();
*/
// stl 
  ifstream c("input.txt");
  ofstream d("output1.txt");
  vector<string> aa;
  char ee[255];
//input
  if (c.is_open()) {
    while(!c.eof()) {
      c.getline(ee, 254);
      aa.push_back(ee);
    }
//    sort
    sort(aa.begin(), aa.end(), Mycompare);
//output
//    for (unsigned int j=0; j<aa.size(); j++) dd<<aa[j].c_str()<<endl;
    for (vector<string>::iterator j=aa.begin(); j!=aa.end(); j++) d<<(*j).c_str()<<endl;
  }
  c.close();
  d.close();
    return 0;
}


Нужно изменить его так чтобы он дополнительно выполнял функцию: 
Отбросить все символы в строках с номером символа менее 10 и затем отсортировать строки в алфавитном порядке. 

Автор: archimed7592 29.1.2008, 20:23

M
archimed7592
Закрыто: дубль.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)