IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Ошибка в коде программы(С++), Сортировка строк методом пузырька
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


Будьте добры,уважаемые форумчане можете исправить ошибку в данном коде программе.Уж очень срочно надо.Буду очень признателен.А вот и само условие и код программы:
Исходные данные находятся в текстовом файле. Разделитель – конец строки. Программа запрашивает имя входного и результирующего (отсортиро-ванного) файла. Использовать динамическое распределение памяти.И надо сортировать строки методом пузырька.Тут как бы всё правилььно выполняет,только вот пишет ошибку .. и как мне подсказывали что-то с указателями.Или после кода программы"void main(void)..."


#include<stdio.h>
#include<windows.h>
#include<string.h>
#include<iostream.h>

#define maxline 1000

void sort(char* ptr[],int n_lines)
{
int i,j;
char *tmp;
for(i=0;i<n_lines-1;i++)

for(j=0;j<n_lines-1;j++)

if(strcmp(ptr[j],ptr[j+1])>0)
{
tmp=ptr[j];
ptr[j]=ptr[j+1];
ptr[j+1]=tmp;
}


}
void write_lines(char* ptr[],int n_lines)
{
int i;
char *str = new char[];
for(i=0;i<n_lines;i++)
{
CharToOem(ptr[i],str);
cout<<str<<endl;

}
}

void write_in_file(char* ptr[],int n_lines, FILE* fp)
{
int i;
char *str = new char[];
for(i=0;i<n_lines;i++)
{
fputs(ptr[i],fp);
fputs("\n",fp);


}
}

void main(void)
{

char s[] = "Введите путь к файлу : ";
CharToOem(s,s);
char r[] = "Введите путь к отсортированному файлу : ";
CharToOem(r,r);
char a[] = "Ошибка при открытии файла\n";
CharToOem(a,a);
char ns[] = "До сортировки :";
CharToOem(ns,ns);
char ps[] = "После сортировки :";
CharToOem(ps,ps);


FILE *in;
char *str = new char[];
char *name = new char[];
int counter=0;
char buf[maxline];
char *ptr[maxline];
cout<<s;
cin>>name;

if((in=fopen(name,"rt"))==NULL)
{
cout<<a;
return;
}

FILE *fp;
char *nam = new char[];
cout<<r;
cin>>nam;
fp=fopen(nam,"wt");

for(counter=0;(!feof(in))&&counter<maxline;counter++)
{
fgets(buf,maxline,in);
if(buf[strlen(buf)-1]=='\n')
{
buf[strlen(buf)-1]='\0';
}
ptr[counter] = new char[strlen(buf)+1];
strcpy(ptr[counter],buf);
buf[0]='\0';

}

fclose(in);
cout<<ns<<endl;
write_lines(ptr,counter);
cout<<endl<<endl<<ps<<endl;
sort(ptr,counter);
write_lines(ptr,counter);
write_in_file(ptr,counter,fp);
fclose(fp);

}
P.S.Прошу прощение,за повтор темы.Хотел удалить ,но не нашёл.

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  0  +


Проверил ещё раз,всё ровно русские символы не сортируютсяв текстовом файле(непонятные ироглифы),а сама сортирвока в чёрнмом окошке всё нормально.Не помогли ли Вы помочь разобраться?Я так понимаю,чт окажись загвоздка в строке
Код

  CharToOem(str, str);

Так как ,я взял и данную строку закомментировал и уже файл нормально отсортировался,но возникла проблемав черном окошке(непоняные ироглифы)

Сообщение отредактировано: V.k.l.chr.by -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
V.k.l.chr.by   Ошибка в коде программы(С++)   8.05.2008 3:42
volvo   Можно уточнить? зачем понадобилось перемешивать чи…   8.05.2008 3:57
V.k.l.chr.by   Вообщем я просто брал нечто похожую программу с ла…   8.05.2008 4:08
volvo   Неправильно... Разбираться надо, ЧТОБЫ программа з…   8.05.2008 5:27
V.k.l.chr.by   Просто в условии дано ,чтобы было динамичесткое ра…   8.05.2008 5:30
V.k.l.chr.by   Проверил ещё раз,всё ровно русские символы не сорт…   9.05.2008 16:46
volvo   Ну, так возьми и чуть-чуть подкорректируй write_li…   9.05.2008 19:08
V.k.l.chr.by   Ух..выручили Вы меня всё тепреь работает!…   9.05.2008 22:26
volvo   Задавай, конечно... Для этого форум и существует -…   9.05.2008 23:33
V.k.l.chr.by   И так мне уже в начале не понятно первые строчки.А…   11.05.2008 3:40
volvo   // функция write_lines описывается как void - не …   11.05.2008 4:04
V.k.l.chr.by   Вообщем всё понятно,но возникли небольшие вопросик…   16.05.2008 2:03
volvo   1-Почему,в коде программы нельзя было просто напис…   16.05.2008 3:19
V.k.l.chr.by   Спасибо.Но и в правду как бы всё понятно. Так же х…   16.05.2008 4:42
volvo   Дело не в диапазоне... Дело в том, что память в пр…   16.05.2008 5:49


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 0:42
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name