Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 11.05.2009, 17:40   #11
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию

А точно рабочий?
Я прогнал его на Визе 6-м так он обматюкал меня немного
Ну еще,вдобавок, не хотел удалять буфер
Ну это уже когда я делал присваивание.
Без него - всё ок
main(){
CRus d;
d='а';
d.view(); // 0 a
}
вот так
С наилучшими пожеланиями.
Познающий вне форума
Старый 11.05.2009, 17:43   #12
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Познающий
А точно рабочий?
Я прогнал его на Визе 6-м так он обматюкал меня немного
Точно-точно
Прикладываю экзешник. Выводит русский алфавит.
Компилил в MinGW (wxDev-C++ 7)

Цитата:
Ну еще,вдобавок, не хотел удалять буфер
Ну это уже когда я делал присваивание.
Без него - всё ок
main(){
CRus d;
d='а';
d.view(); // 0 a
}
вот так
Эм... что это?
И какой буфер вы не хотите удалять?
Вложения
Тип файла: rar CRus.rar (114.7 Кб, 7 просмотров)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 11.05.2009, 17:47   #13
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию

Стоп.
Так применив наследование будет же тоже самое,что и в предыдущем варианте. Разве не так?
С наилучшими пожеланиями.
Познающий вне форума
Старый 11.05.2009, 17:49   #14
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Точно-точно
Эм... что это?
И какой буфер вы не хотите удалять?
переменная buf;
это же буфер,так?
Ну вот выделить память он ничего, а как удалять(освобождать) выдает ошибку.
А то было мэйн просто)
С наилучшими пожеланиями.
Познающий вне форума
Старый 11.05.2009, 17:53   #15
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
Смех :d :d :d

выводит алфавит)
до Э
Ну ладно))
просто прикольно было)
с выводом-то не проблема)
Я сейчас пытаюсь создать букву,присвоить ей 'а'
и проверить это функцией вывода)
все работает, только вот это вот delete[] buf
чем не понравилось? вроде нормально
С наилучшими пожеланиями.
Познающий вне форума
Старый 11.05.2009, 17:55   #16
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Стоп.
Так применив наследование будет же тоже самое,что и в предыдущем варианте. Разве не так?
А? В каком варианте?
Мне просто было лень разбираться с ошибками, поэтому я просто его наследовал. Думаю, это не принципиально.

Цитата:
переменная buf;
это же буфер,так?
Ну вот выделить память он ничего, а как удалять(освобождать) выдает ошибку.
Разве? У меня все нормально.
Вообще, можно создавать буфер в конструкторе, а удалять в деструкторе. Наверное, так даже лучше будет. Ведь мы его все равно часто используем.

Цитата:
выводит алфавит)
до Э
Ну ладно))

Ну до 'э' )) Просто эта буква под руку попалась, когда вводил )
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 11.05.2009, 17:58   #17
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вот. Запихнул буфер в конструктор CAlpha.
И исправил вывод до 'я'
Код:
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <string.h>
using namespace std;

class CAlpha
{
public:
//friend class CRus;
char m_alpha[34];
char *buf;
CAlpha()
 {
  strcpy(m_alpha,"абвгдеёжзийклмнопрстуфхцчшщъыьэюя");
  ::CharToOem(m_alpha,m_alpha);
  buf = new char[1];
  }
~CAlpha()
 {
  delete[] buf;
 }
};

class CRus : CAlpha
{
public:
   int m_k;
   char m_l; // letter

CRus&  operator=(const char r_ch)
 {
 buf[0] = r_ch;
 ::CharToOem(buf,buf);
 m_l=buf[0];
 for (int i=0;i<34;i++)
  if (m_alpha[i]==m_l) {m_k=i; break;}
 }

bool operator<=(const char r_ch)
{
buf[0] = r_ch;
::CharToOem(buf,buf);
int ch_num;//для номера введеной буквы
for (int i=0;i<34;i++)
 if (m_alpha[i]==buf[0])
  { ch_num=i; break; }

if (m_k<=ch_num) return true;
else return false;
}

CRus& operator ++()
{
m_k++;
m_l = m_alpha[m_k];
}

};
//--------------------

int main()
{
CRus p;

for(p='а'; p<='я'; ++p)
 cout<<p.m_l;

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 11.05.2009, 18:40   #18
Познающий
Форумчанин
 
Аватар для Познающий
 
Регистрация: 09.05.2009
Сообщений: 162
По умолчанию

for (int i=0;i<34;i++)
if (m_Alpha[i]==buf[0]) { m_k=i; break;}
вот тут сразу два "зайца"
\Rus.cpp(33) : error C2446: '==' : no conversion from 'char *' to 'int'
\Rus.cpp(33) : error C2040: '==' : 'int' differs in levels of indirection from 'char *'
Что это???
Такое ощущение что алфавит не конвертировался.
С наилучшими пожеланиями.
Познающий вне форума
Старый 11.05.2009, 18:47   #19
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
\Rus.cpp(33) : error C2446: '==' : no conversion from 'char *' to 'int'
\Rus.cpp(33) : error C2040: '==' : 'int' differs in levels of indirection from 'char *'
Что это???
Честно говоря, не знаю.. Должно работать (даже по логике).
Попробуйте явно привести, как-нибудь так:
Код:
if (m_alpha[i]==(char)buf[0])
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 11.05.2009, 23:59   #20
GrIfFiN
 
Регистрация: 29.04.2009
Сообщений: 8
По умолчанию

В любой таблице символов все идет по порядку. Почему бы это не использовать? Проверяем прописной или писменный чар, и в зависимости от этого вычитаем фиксированное смещение, и используем номер элемента как нашу цифру. Так не проще будет?
GrIfFiN вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос по строкам CraZZy RabbIt Общие вопросы Delphi 4 21.04.2009 19:00
Задача на С++ по строкам EwwwA Помощь студентам 2 20.12.2008 15:22
задача по строкам D_K_ Помощь студентам 10 14.12.2008 16:21
Срочно!! Народ помогите!! Вопрос пустяковый) Kemper Помощь студентам 1 09.03.2008 16:01