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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевод из int в CString 
:(
    Опции темы
Morozzz45
Дата 6.6.2010, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Мне нужно перевести массив [60][60] в строку x типа CString. Массив состоит из 0 и 1. Я беру по 8 элементов, перевожу их в 10ое число, его в чар, и в конце приравниваю к цстринговской переменной. Есть еще воможные, более быстрые варианты перевода?
Мой код:
    
Код

int i,ii=0,temp=0,k=0,o=0,iter=0;
    CString x; char* t; t=new char [3600]; 
    for(i=0;i<3600;i++)
    {
        temp=temp+resh[k][ii]*pow(2,o);
        o++;ii++; 
        if(o==8) 
        {
            o=0;
            t[iter]=temp;
            iter++;
        }
        if(i==59) {k++;ii=0;o=0;}
        
    }
    x=t;
    return x;

Массив resh[60][60] заполнен 1 и 0. В итоге, получается строка длиной 32 символа... А хотя должно быть 450.
Заранее спасибо smile
PM MAIL   Вверх
Sosed
Дата 6.6.2010, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



т.е. у нас 3600 нулей и едениц, которые нужно разбиться на последовательности по 8 символов,  пребразовать в 8-ми битные числа и записать в CString, так?
PM MAIL   Вверх
Morozzz45
Дата 6.6.2010, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



3600 нулей и единиц, разбиваем на блоки по 8, каждый блок в десятичное число, число в символ(как аскикод), символы по порядку в систринг smile
PM MAIL   Вверх
Sosed
Дата 7.6.2010, 05:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



черт, MFC-а то у мня нету, компилятор не VS(

Код

CString numStr;
CString tmp;
int num(0), count(0);
for(int i=0; i<60; ++i) {
    for(int j=0; j<60; ++j) {
        if(count < 8) {
            if( resh[i][j] ) num += (2 << 6-count);
            ++count;
        } else {
            count = 1;
            tmp.format("%i", num);
            numStr = numStr + tmp;
            tmp.clear(); //temp="";
            if( resh[i][j] ) num = (2 << 6);
            else num = 0;
        }
    }
}

Примерно так, но методы CString(format, clear) может пишутся немного по другому.

Это сообщение отредактировал(а) Sosed - 7.6.2010, 05:07
PM MAIL   Вверх
Morozzz45
Дата 7.6.2010, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Запустил в отладчике, сначала все идет нормально, Num равен 240.
tmp.format("%i", num); - тут он в тмп присваивает не символ(как нужно), а именно 240...
PM MAIL   Вверх
Sosed
Дата 8.6.2010, 05:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Что-то подумал что числа надо)
Ну так попробуй
tmp.format("%c", (char)num);
или массив char на 450 штук и туда пихать, а после его в CString
PM MAIL   Вверх
Albor
Дата 8.6.2010, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

CString sResult;
CString sTemp;
sTemp.Format(_T("%u"), mas[i][j]);
sResult+=sTemp;

Оформи только в цикле и всё будет ОК. 
PM MAIL ICQ   Вверх
Morozzz45
Дата 10.6.2010, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, с этим разобрался)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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