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

Проблемы с stringObj.append(stringObj.at(i) и stringObj.append(classObj[i].charObj) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать массив по условию http://www.cyberforum.ru/cpp-beginners/thread795939.html
Заданы два вещественных массива Х=(х1, х2, …, хn) и Y=(y1, y2, …, ym). Сформировать массив Z, в который включить из массива Х элементы, превышающие среднее арифметическое значение массива Y, а из...
C++ Как заставить свой объект стрелять? Здравствуйте... Пытаюсь написать игру типа Космической дуэли... Застопарился на стрельбе... Точнее как заставить свой объект стрелять... Подскажите как можно организовать данный процесс. Или где... http://www.cyberforum.ru/cpp-beginners/thread795937.html
Функция, которая возвращает цвет пикселя в точке с координатами х, у C++
Доброго времени суток. Уважаемые программисты, подскажите пожалуйста, есть ли в Visual Studio С++ 10 функция, которая бы возвращала цвет пикселя картинки в точке с координатами (х, у)? Так как я...
Написать сумму ряда С++ C++
Новичок еще, пытаюсь самостоятельно выучить язык, пока не очень получается.
C++ Три сопротивления R1, R2, R3 соединены параллельно. Найти сопротивление соединения http://www.cyberforum.ru/cpp-beginners/thread795884.html
Добрый вечер, ув. программисты! Очень нужна Ваша помощь. Моему сыну в колледже по программированию задали на завтра написать две программы (отдельно). Сам я в программировании "дундук" (ну не мое...
C++ Ошибка в классе #include "Eliptic_arc.h" void Eliptic_arc::set_val(char name, int val) { } int Eliptic_arc::get_val(char name) { } подробнее

Показать сообщение отдельно
Kortez
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 10

Проблемы с stringObj.append(stringObj.at(i) и stringObj.append(classObj[i].charObj) - C++

27.02.2013, 02:25. Просмотров 519. Ответов 16
Метки (Все метки)

Всем доброго времени суток. Столкнулся со странной проблемой. И не смог сам разобраться.
При добавлении к строке (string) элемента другой строки (в коде помечено "//ПРОБЛЕМА_1") или символа (char) (//ПРОБЛЕМА_2) компилятор выдаёт сообщения об ошибке (см. спойлер).
При этом, в реализации другого метода, подобная конструкция не создаёт проблем.
C++
1
kodStr.append(slovarFano[j].kod)
kodStr, kod имеют тип string; kod - char.

Для удобства отладки все поля класса fano имеют открытый доступ.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
string fano::dekodirovanie()
{
    string temp;
    bool find = false;
    int findId = -1;
    for(int i = 0; i < kodStr.length(); i++)
    {
    temp.append(kodStr.at(i));              //ПРОБЛЕМА_1
//  cout << temp.at(i) << '\n';
    for(int j = 0; j < top; j++)
    {
//      cout << kodStr.at(i) << '\n';
        if(temp.compare(slovarFano[j].kod) == 0) 
        { find = true; findId = j; break; }
    }
    if(find) 
    {
        dekStr.append(slovarFano[findId].symbol);   //ПРОБЛЕМА_2
        temp.clear();
        find = false; findId = -1;
    }
    }
    
    return dekStr;
}
Компилятор возвещает:
Кликните здесь для просмотра всего текста
kortez@dev:~/cpp$ g++ code1.cpp -o code.a
code1.cpp: В функции-члене «std::string fano::dekodirovanie()»:
code1.cpp:178:26: ошибка: некорректное преобразование из «char» в «const char*» [-fpermissive]
/usr/include/c++/4.6/bits/basic_string.h:997:7: ошибка: при инициализации 1 -го аргумента «std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::append(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>, std::basic_string<_CharT, _Traits, _Alloc> = std::basic_string<char>]» [-fpermissive]
code1.cpp:188:45: ошибка: некорректное преобразование из «char» в «const char*» [-fpermissive]
/usr/include/c++/4.6/bits/basic_string.h:997:7: ошибка: при инициализации 1 -го аргумента «std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::append(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>, std::basic_string<_CharT, _Traits, _Alloc> = std::basic_string<char>]» [-fpermissive]


Добавлено через 52 минуты
P.S. Компилятор: g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

Добавлено через 3 минуты
P.P.S. В начале небольшая опечатка по типам переменных.
kodStr, kod имеют тип string; symbol - char.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru