Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [c++]Вопросы по классам. Оконное приложение. 
:(
    Опции темы
atomlex
Дата 23.12.2009, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 29.11.2009

Репутация: нет
Всего: нет



Пишу на ms visual c++ 6
Оконное приложение.Первая кнопка читает текстовый файл и выводит слова в первый эдитбокс.
Вторая должна отсортровать эти слова по алфавиту методом выбора и записать в новый файл.
Вопрос в чем, если слова читаемые из файла остаются в эдитбоксе, т.е. в буфере, их можно взять и отсортировать, т.е. не прибегая к повторному чтению файла во время сортировки.Как это на частном случае сдеать?
И второй вопрос, куда прописать по-человечески фунции Sort() и main() из второй кнопки.Компил на них естественно ругается.
Спасибо.
Код

void CKursrabDlg::OnButton1() 
 
//Чтение файла и вывод на первый бокс
{
        char str[100];
        char Filter []="TextFile(*.txt),(*.doc) | *.txt; *.doc all(*.*) | *.*||";
        CFileDialog fd(TRUE, ".txt", "ReadMe", OFN_HIDEREADONLY, Filter);
//      fd. DoModal();
        if(fd.DoModal()==IDOK)  
        {
        CFile f;
        f.Open(fd.GetPathName(), CFile:: modeRead);
        f.SeekToBegin();
 
        //m_str - первый бокс, куда выводится данные из читаемого файла
int z = f.Read(str, sizeof(str));
str [z] = '\0';
        m_str.Format(str); 
        UpdateData(0);
        f.Close();                      
 
        }
}
 
void CKursrabDlg::OnButton2()
{
        // Кнопка сортировка текста по алфавиту выбором
 
 
void Sort(char *a[], int size )
{
int i,j,min;
 
char *k;
k = new char[1024];
 
 
for (i=0;i<size-1;i++)
{
        min=i;
           for(j=i+1; j<size; j++)
                   if(strcmp(a[j], a[min])>0)
                           min=j;
}
        k = a[min];
                a[min]=a[i];
                a[i]=k;
 
}
 
void main(int argc, char* argv[])
{
        int i,n;
        char mas;
 
 
for (i=0; i<n; i++)
  printf("%5s", mas[i]);
   printf("/n");
Sort(char **mas, int i);
  for (i=0; i<n; i++)
    printf ("%5s", mas[i]);
 
 
}
 
 
 
 
}

PM MAIL   Вверх
cristaloleg
Дата 23.12.2009, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 15.6.2009
Где: Donetsk

Репутация: нет
Всего: нет



Цитата
куда прописать по-человечески фунции Sort() и main()


В классе
Код

void CKursrabDlg::Sort(char *a[], int size )) 


Это сообщение отредактировал(а) cristaloleg - 23.12.2009, 21:11
PM   Вверх
atomlex
Дата 23.12.2009, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 29.11.2009

Репутация: нет
Всего: нет



Куда именно в классе прописать?)
PM MAIL   Вверх
cristaloleg
Дата 24.12.2009, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 15.6.2009
Где: Donetsk

Репутация: нет
Всего: нет



В хедере
Код

class CKursrabDlg
{
    //.......
    void Sort(char *a[], int size );
    //......
}

PM   Вверх
atomlex
Дата 25.12.2009, 15:52 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 29.11.2009

Репутация: нет
Всего: нет



спасибо)
теперь при компиляции выдает ошибки
Код

 error C2601: 'Sort' : local function definitions are illegal
 error C2601: 'main' : local function definitions are illegal



Код

void CKursrabDlg::OnButton2()
{
    // Кнопка сортировка текста по алфавиту выбором



void CKursrabDlg::Sort(char *a[], int size )
{
int i,j,min;

char *k;
k = new char[1024];


for (i=0;i<size-1;i++)
{
    min=i;
       for(j=i+1; j<size; j++)
           if(strcmp(a[j], a[min])>0)
               min=j;
}
        k = a[min];
        a[min]=a[i];
        a[i]=k;

}

void CKursrabDlg::main(int argc, char* argv[])
{
    int i,n;
    char mas;


for (i=0; i<n; i++)
  printf("%5s", mas[i]);
   printf("/n");
Sort(char **mas, int i);
  for (i=0; i<n; i++)
    printf ("%5s", mas[i]);


}


}

PM MAIL   Вверх
cristaloleg
Дата 25.12.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 15.6.2009
Где: Donetsk

Репутация: нет
Всего: нет



что то неправильно объявил
мсдн

Это сообщение отредактировал(а) cristaloleg - 25.12.2009, 15:55
PM   Вверх
mes
Дата 25.12.2009, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(atomlex @  25.12.2009,  14:52 Найти цитируемый пост)
теперь при компиляции выдает ошибки

поставьте } в 4й строке


--------------------
PM MAIL WWW   Вверх
atomlex
Дата 27.12.2009, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 29.11.2009

Репутация: нет
Всего: нет



Цитата(mes @ 25.12.2009,  16:17)
Цитата(atomlex @  25.12.2009,  14:52 Найти цитируемый пост)
теперь при компиляции выдает ошибки

поставьте } в 4й строке

можете объяснить что это меняет?
поставил, появились другие ошибки)
PM MAIL   Вверх
mes
Дата 27.12.2009, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(atomlex @  27.12.2009,  18:39 Найти цитируемый пост)
можете объяснить что это меняет?

ну так у Вас функция CKursrabDlg::OnButton2() открывается , но не закрывается smile

Цитата(atomlex @  27.12.2009,  18:39 Найти цитируемый пост)
поставил, появились другие ошибки) 

ну тут телепатов нет, показывайте какие ошибки...
могу лишь предположить что не в ту 4ю строчку поставили скобку smile


--------------------
PM MAIL WWW   Вверх
atomlex
Дата 27.12.2009, 20:05 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 29.11.2009

Репутация: нет
Всего: нет



Код

void CKursa4Dlg::OnButton2() 
{

    // Кнопка сортировка текста по алфавиту выбором

void CKursa4Dlg::Sort(char *a[], int size )
{
int i,j,min;

char *k;
k = new char[1024];


for (i=0;i<size-1;i++)
{
    min=i;
       for(j=i+1; j<size; j++)
           if(strcmp(a[j], a[min])>0)
               min=j;

        k = a[min];
        a[min]=a[i];
        a[i]=k;
}
}

void CKursa4Dlg::main(int argc, char* argv[]);
{


 int sizem;
char* m;

Sort(char *m, int sizem);

}
}






Код

 error C2601: 'Sort' : local function definitions are illegal
error C2144: syntax error : missing ')' before type 'char'
error C2660: 'Sort' : function does not take 0 parameters
error C2059: syntax error : ')'


Непонятно, почему так ругается на ")", и как с Sort() поступить.

Это сообщение отредактировал(а) atomlex - 27.12.2009, 20:12
PM MAIL   Вверх
cristaloleg
Дата 27.12.2009, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 15.6.2009
Где: Donetsk

Репутация: нет
Всего: нет



может проблема в том что Вы описываете функции в функции???
PM   Вверх
atomlex
Дата 27.12.2009, 20:34 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 29.11.2009

Репутация: нет
Всего: нет



М.Как их тогда отдельно описать?
PM MAIL   Вверх
mes
Дата 28.12.2009, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(atomlex @  27.12.2009,  19:34 Найти цитируемый пост)
М.Как их тогда отдельно описать? 

а если немножко внимательности ? Вам и название функции сказали в которой ошибка, и какая именно ошибка..
осталось только пальцем ткнуть   smile 

Цитата

Код

void CKursa4Dlg::OnButton2() 
{   <-------------------------// НАЧАЛО БЛОКА
    // Кнопка сортировка текста по алфавиту выбором

  <-------------------------// А ГДЕ КОНЕЦ ???

void CKursa4Dlg::Sort(char *a[], int size )
{
int i,j,min;




Это сообщение отредактировал(а) mes - 28.12.2009, 02:04


--------------------
PM MAIL WWW   Вверх
atomlex
Дата 28.12.2009, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 29.11.2009

Репутация: нет
Всего: нет



Теперь проблема с вызовом функции Sort().Как вызвать функцию сортировки и отсортировать массив строк прочитанный первой кнопкой?Такие вот вопросы..
Код

error C2144: syntax error : missing ')' before type 'char'
error C2660: 'Sort' : function does not take 0 parameters
error C2059: syntax error : ')'

PM MAIL   Вверх
mes
Дата 28.12.2009, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(atomlex @  28.12.2009,  20:58 Найти цитируемый пост)
Теперь проблема с вызовом функции Sort().Как вызвать функцию сортировки и отсортировать массив строк прочитанный первой кнопкой?Такие вот вопросы..


вызов  происходит без указания типов.. а иначе это определение функции.


а вообще лучше перед началом почитать книжку по основам cpp и разобраться с ними.. 



P.S. у Вас еще в конце кода непонятно кому принадлежащая вторая закрывающая скобка.

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


Это сообщение отредактировал(а) mes - 28.12.2009, 23:11


--------------------
PM MAIL WWW   Вверх
atomlex
Дата 28.12.2009, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 29.11.2009

Репутация: нет
Всего: нет



Все-таки нужно было ходить на лекции по методам программирования.
Спасибо за помощь..
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1467 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.