Автор: reser (15.04.2012 в 12:51)
код работает. люблю последовательно делать чтоб потом вопросов не осталось...сейчас надо прочитать файл и просто его результ записать в др файл типа сделать копию. потом уж понятно что надо попробовать отсортировать.
Я так понимаю надо тупо не учитывать # (наверно начинать считывать с +1 элем строки) и сортировать по самому слову и будет сортироваться вся строка. Здесь вводят строки а просто надо сделать с файла чтение. вот и думаю пока как это сделать все. если что помогите что-ли. хотя неплохо бы считать # началом новой записи по которой сортируют это тоже не ясно как сделать...
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define N 100
#define M 30
int main(int argc, char* argv[]) {
char a[N][M];
int n, i;
scanf("%d", &n);
for (i=0; i<n; i++)
scanf("%s", &a[i]);
qsort(a, n, sizeof(char[M]), (int (*)(const void *,const void *)) strcmp);
for (i=0; i<n; i++)
printf("%s\n", a[i]);
return 0;
}
вот с этим крокодилом надо что то сделать подогнать к нам так сказать qsort(a, n, sizeof(char[M]), (int (*)(const void *,const void *)) strcmp); этот strcmp сам должен сортировать))
Хотя вот вариант!
// pim2.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <algorithm>
#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
#include <string>
int main()
{
std::string s;
std::vector<std::string> lines;
// читаем файл в контейнер построчно
std::ifstream in_file("laba3.txt", std::ios::in);
while(getline(in_file, s))
lines.push_back(s);
in_file.close();
std::sort(lines.begin(), lines.end()); // сортируем контейнер
// и записываем отсортированный контейнер в новый файл
std::vector<std::string>::iterator i = lines.begin();
std::ofstream out_file("laba31.txt", std::ios::out);
for(; i != lines.end(); ++i)
out_file << *i << std::endl;
out_file.close();
return 0;
}
Тут теперь надо сделать так чтобы можно было выбирать несколько текстовых файлов.
То есть файлы должны лежать просто в папке и их должно быть четное количество например 4.
Программа сама их открывает и сортирует.
Потом соединяет по 2 файла в один и получается 2 новых файла.
Сортирует их.
Получает 2 файла и соединяет их. Далее сортирует и это окончательный файл сортированный по алфавиту.