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

Строки. Создание, объявление и компановка. Перевод из string в char[] - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ не работает программа в Code Blocks. http://www.cyberforum.ru/cpp-beginners/thread575766.html
Начал изучать С++ по книге "Прата С - Язык программированния С++" Начал писать код из самого начала книги(первый пример). программа не запускается. #include <iostream> int main() { using namespace std; cout<<"Come up and C++ me some time."; cout<<endl;
C++ Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-ю степень, равна самому числу Требуется помощь.. Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-ю степень, равна самому числу (как, например, 153 = 1^3 +5^3 +3^3). Получить все числа Армстронга, состоящие из двух, трех и четырех цифр. http://www.cyberforum.ru/cpp-beginners/thread575759.html
Написать программу, которая определяет, принадлежит ли точка с координатами (x, y) заштрихованной области C++
И вот тут я запутался....требуется помощь Написать программу, которая определяет, принадлежит ли точка с координатами (x, y) заштрихованной области D, изображенной на заданном рисунке
C++ сумма 2х чисел
написать программу,которая запрашивает 2 целых числа.Затем высчитывает сумму 2х рандомных чисел,находящихся на промежутке от 2х заданных.Выводит эти 2 числа(первым меньшее) и сумму их.
C++ Автоматы Мили и Мура http://www.cyberforum.ru/cpp-beginners/thread575734.html
Нужно решить сделать задачу по автоматам Мили и Мура, это курсовая, пожалуйста форум чата решите на языке Pascal или C++
C++ Нужно ли синхронизировать доступ к переменной из двух потоков? Допустим есть два потока: основной и вторичный. 1. И допустим есть глобальная переменная bool b; Вопрос: является ли b разделяемым ресурсом? И нужно ли синхронизировать доступ к ней? Например вариант когда b сигнализирует основному потоку о том что вторичный поток закончен... 2. Есть глобально объявленный std::vector. Вторичный поток переодически добовляет туда элементы. Основной... подробнее

Показать сообщение отдельно
Meison
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 7
17.05.2012, 10:14  [ТС]     Строки. Создание, объявление и компановка. Перевод из string в char[]
Спасибо, код работает , но теперь возникла еще одна проблема:
передается не весь массив и почему то всего 4 символа 0_о
вот получившийсяв итоге код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
ostringstream oss;
    oss << code_t << " " << error << " " << q;
    string decodingMesaggeStr = oss.str();
    char const* decodingMesaggeCA = decodingMesaggeStr.c_str();
    printf("Decoder\nbuild: %s", decodingMesaggeCA);
    jchar *jdecodingCode;
    //Преобразование char -> jchar
      strLen = sizeof(decodingMesaggeCA);
      jdecodingCode = (jchar *) calloc(strLen, sizeof(jchar));
      for (i = 0; i < strLen; i++)   
      {   
        jdecodingCode[i] = (jchar)decodingMesaggeCA[i];  
      }  
        //Передача массива символов в Java-метод
        jcharArray arr = env->NewCharArray(strLen);
        env->SetCharArrayRegion(arr, 0, strLen, (jchar*) jdecodingCode);
        jmethodID targetMethodId = env->GetStaticMethodID(myclass, "callback", "([CI)V");
        env->CallStaticVoidMethod(myclass, targetMethodId, arr, strLen);
Вывод printf("Decoder\nbuild: %s", decodingMesaggeCA):
Код
Decoder
build: 4818741 16432 3649
то есть три числа, как и пологалось, правда в идеале должно было получиться что то типа:
Код
10010011000011100110101 00000000100000000110000 111001000001
но это мелочи в Java всегда модно применить метод INteger.ToByteString и добавить недостающие нули слева.
НО! проблема оказывается что передается как я уже написал только 4 символа:
Код
Кодирование сообщений по алгоритму Голея:
11010010100111100001101
Сообщение с ошибкой:
10010011100011100000101
Количество внесенных ошибок:
4
4818 //как выдно только 4 
Decoder
build: [COLOR="Red"]4818741 16432 3649[/COLOR] //из положенной этой(выделено красным)
Совсем мне не объяснимая ошибка получается. Потому что размер массива вроде правильно задается 0_о
Для прозрачности картины выложу код функции callback программы на Java, которой отправляются данные:
Java
1
2
3
4
public static void callback(char data[], int length) {
        decodingMessage = new char[length];
        decodingMessage = data;
       }
Ребята, помогите исправить ошибку... ткните пальцем, где не правильно ;(

Добавлено через 10 часов 50 минут
Как я понял не правильно срабатывает строчка
C++
1
strLen = sizeof(decodingMesaggeCA);
потому что вывод выполнения её примерно такой:
Код
длиной в 4
НО ответа так и нет : почему он не хочет считать полную длину последовательности, а вибирает только 4 символа?
 
Текущее время: 19:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru