Форум программистов, компьютерный форум CyberForum.ru

сортировка одномерного символьного массива из файла - C++

Восстановить пароль Регистрация
 
vitaliypro
1 / 1 / 0
Регистрация: 09.09.2013
Сообщений: 125
19.10.2013, 17:05     сортировка одномерного символьного массива из файла #1
//Пузырьковая сортировка по убыванию (прямое направление)

вот прога. считывает и выводит на экран буквы из файла "in.txt"

но как то она не правильно работает.(((

помогите из файла 10 элементов , (содержание файла : c r w y h g f t u d) считать в массив, что бы можно было потом отсортировать.!!!!!!!!!!!!!!!!!!!!!1

#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <fstream.h>

#define SIZE 10
#define IFILE "in.txt"

const n=10;


void getmas (char *a)
{
FILE* f;

if((f = fopen(IFILE, "r")) == NULL)
{
perror("fopen");
exit(1);
}

if((fgets(a, SIZE*2, f) == NULL) && ferror(f))
{
fprintf(stderr, " Oshibka chtenia \n");
exit(2);
}

fputs(a, stdout);

cout <<endl<<" ________END____"<<endl;
return ;
}

void SaveInFile (char *a)
{
ofstream output_file ("out.txt");
if(output_file==NULL) cout<< "~~ERROR~~ input file "<<"\n";
for(int i=0; i<n;i++)
{
output_file << a[i]<< " ";
}
}


void sortmas (char *a)
{

// сортировка пузырьком
for(int i=0;i<n;i++)
{
for (int j=0;j<n-1-i;j++)
{
if (a[j]>a[j+1])
{
int x=a[j];
a[j]=a[j+1];
a[j+1]=x;
}
}
}
cout<<" Otsortirovanniy massiv : \n";
for(int i=0;i<n*2;i++) cout<<a[i]<<"-";
SaveInFile (a);
}


int main ()
{
char a[n];
getmas (a);
cout<<" Ishodniu massiv : \n";
for(int i=0;i<SIZE*2;i++) cout<<a[i]<<"+";
cout<<endl;
sortmas (a);
getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Drusha
6 / 6 / 0
Регистрация: 16.07.2013
Сообщений: 74
19.10.2013, 17:52     сортировка одномерного символьного массива из файла #2
Если я правильно понял то вот.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<iostream>
#include<fstream>
using namespace std;
 
int main()
{
    char mas[10],temp;
    int i,j;
    ifstream a("in.txt");
    for(i = 0; i < 10; i++) a >> mas[i];
    a.close();
    for(i = 0; i<10; i++)
    {
        for(j = 9; j > i; j--)
        {
            if(mas[j-1]>mas[j])
            {
                temp=mas[j-1];
                mas[j-1]=mas[j];
                mas[j]=temp;
            }
        }
    }
    for(i = 0; i < 10; i++) cout << mas[i] << ' ';
    return 0;
}
vitaliypro
1 / 1 / 0
Регистрация: 09.09.2013
Сообщений: 125
19.10.2013, 18:26  [ТС]     сортировка одномерного символьного массива из файла #3
СПАСИБО ОГРОМНОЕ

а как разбить так как у меня было на функции
-ввод
-вывод
главная
???

Добавлено через 21 минуту
#include<iostream>
#include<fstream>
#include<conio.h>

using namespace std;

void genmas (char *mas)
{
ifstream a("in.txt");
for(int i = 0; i < 10; i++) a >> mas[i];
a.close();
}

void sortmas (char *mas)
{
char temp;
for(int i = 0; i<10; i++)
{
for(int j = 9; j > i; j--)
{
if(mas[j-1]>mas[j])
{
temp=mas[j-1];
mas[j-1]=mas[j];
mas[j]=temp;
}
}
}
}

void savefile(char *mas)
{
ofstream filer ("out.txt");
for(int i=0; i<10;i++)
{
filer << mas[i]<< " ";
}
}

int main()
{
char mas[10],temp;
int i,j;
genmas (mas);
cout<<"Ishodniu massiv : \n";
for(i = 0; i < 10; i++) cout << mas[i] << ' ';
sortmas (mas);
cout<<"\nSortirovanniu massiv : \n";
for(i = 0; i < 10; i++) cout << mas[i] << ' ';

savefile (mas);

getch();
return 0;
}


ВОТ ДОДЕЛАЛ ВСЕ САМ)НО СПАСИБО ЗА ПОМОЩЬ!!!!!!!
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
19.10.2013, 18:33     сортировка одномерного символьного массива из файла #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <iterator>
#include <fstream>
#include <vector>
 
void getVectorFromFile(std::vector <char> &vector);
void sortVector(std::vector <char> &vector);
 
int main()
{
    std::vector <char> vector;
    getVectorFromFile(vector);
 
    std::cout << "File content: " << std::endl;
    std::copy(vector.begin(), vector.end(), std::ostream_iterator <char> (std::cout, " "));
    std::cout << std::endl;
 
    sortVector(vector);
    std::cout << "Sorted file content: " << std::endl;
    std::copy(vector.begin(), vector.end(), std::ostream_iterator <char>(std::cout, " "));
    std::cout << std::endl;
 
    system("pause");
    return 0;
}
 
void getVectorFromFile(std::vector <char> &vector)
{
    std::ifstream file("file.txt");
    char currentSymbol;
    while (file >> currentSymbol)
        vector.push_back(currentSymbol);
    file.close();
}
 
void sortVector(std::vector <char> &vector)
{
    for (size_t i = 0; i < vector.size(); i++) {
        for (size_t j = vector.size() - 1; j > i; j--) {
            if (vector.at(j - 1) > vector.at(j)) {
                char temporary = vector.at(j - 1);
                vector.at(j - 1) = vector.at(j);
                vector.at(j) = temporary;
            }
        }
    }
}
Drusha
6 / 6 / 0
Регистрация: 16.07.2013
Сообщений: 74
19.10.2013, 18:41     сортировка одномерного символьного массива из файла #5
vitaliypro , не за что. Если вы getch() замените на cin.get(), то можно будет убрать библиотеку conio.h
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
19.10.2013, 18:44     сортировка одномерного символьного массива из файла #6
забыл функцию сохранения отсортированного вектора в файл.
C++
1
2
3
4
5
6
void saveVectorToFile(std::vector <char> vector);
void saveVectorToFile(std::vector <char> vector)
{
    std::ofstream file("file.txt");
    std::copy(vector.begin(), vector.end(), std::ostreambuf_iterator <char> (file));
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2013, 18:57     сортировка одномерного символьного массива из файла
Еще ссылки по теме:

Сортировка одномерного массива C++
C++ Сортировка символьного массива
C++ Сортировка одномерного массива

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
vitaliypro
1 / 1 / 0
Регистрация: 09.09.2013
Сообщений: 125
19.10.2013, 18:57  [ТС]     сортировка одномерного символьного массива из файла #7
спасибо)
Yandex
Объявления
19.10.2013, 18:57     сортировка одномерного символьного массива из файла
Ответ Создать тему
Опции темы

Текущее время: 05:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru