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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.97
melifaro
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 15
#1

Перевод из int в string - C++

05.03.2013, 17:40. Просмотров 5071. Ответов 8
Метки нет (Все метки)

Пожалуйста подскажите что не так. Для перевода пыталась сначала запихнуть int в stringstream, такой способ прочла где-то в инете. В качестве int выступает unitnum

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
float AverageBright(float** y, string units, int** traject, int sizex, int sizey, int unitnum, int lenght)
{
    std::stringstream ss;
    int *TrajectsOfThisUnit;
    float SumBright=0., AverBrig;
    //char *tmp;
    //tmp=(char*)malloc(lenght*sizeof(char));
    std::string unitnumstr, str;
    TrajectsOfThisUnit=(int*)malloc(lenght*sizeof(int));
    cout << "search bright\n" << endl;
    //printf("units=%s\n",units.c_str());//верно
    ss<<unitnum;
    cout << "search bright\n" << endl;
 
//bla bla bla 
 
}
в этом коде у меня первый search bright выводится, а перед вторым прога прекращает работу и предлагает поискать решение в инете. Пыталась в ss записывать что-то другое и тоже не выходит, с тем же результатом.
В целом же задача такая: есть строка string, из которой нужно выбрать написанные через пробел целые числа и записать из в массив int.
Code blocks с родным компилятором, windows
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2013, 17:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод из int в string (C++):

Перевод из int в string - C++
Подскажите, пожалуйста, как перевести целое число в строку читал вот эту темку, но не понял ничего :(

Перевод string в int - C++
Доброго времени суток! Помогите с задачей. Задана строка strung s с числами (например 2 55 11) Как считать числа в массив int

перевод из string в int и обратно - C++
как?:)

Перевод типов string to int - C++
Суть задания в следующем: Задана строка, приблизительно такого вида &quot;2+3/4&quot; Мне надо подсчитать результат... Для этого решил...

Перевод числа из int в string - C++
Программа вычисляет сумму нечетных чисел в массиве. Далее хотел определить, является число состоящим из одинаковых цифр. Начал переводить...

Перевод строки string в int посимвольно - C++
помогите никак не могу разобраться есть файл со строкой типа в кодировке ANSI считываю все символы в строку перевожу их в двумерный...

8
hofmn
Helter Skelter
61 / 61 / 1
Регистрация: 19.09.2012
Сообщений: 133
05.03.2013, 17:44 #2
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
#include <iostream>
#include <sstream>
using namespace std;
 
string convertInt(int number)
{
    stringstream ss;
    ss << number;
    return ss.str();
}
 
int main()
{
    int intVal;
    string str;
 
    cout << "Enter int val: ";
    cin >> intVal;
 
    str = convertInt (intVal);
 
    cout << "This is string: " << str << endl;
 
    return 0;
}
1
melifaro
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 15
05.03.2013, 18:02  [ТС] #3
Вывела в отдельную функцию, как предложено. Все равно падает на строчке где в строку присваивается результат конвертирования.
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
26
27
28
29
30
31
32
33
34
35
float AverageBright(float** y, string units, int** traject, int sizex, int sizey, int unitnum, int lenght)
{
    int i, j, k=0, l;
    int *TrajectsOfThisUnit;
    float SumBright=0., AverBrig;
   // char *tmp;
    //tmp=(char*)malloc(lenght*sizeof(char));
    string unitnumstr, str;
    TrajectsOfThisUnit=(int*)malloc(lenght*sizeof(int));
    cout << "search bright\n" << endl;
    unitnumstr=convertInt(unitnum);///////////////////ВОТ ТУТ ПАДАЕТ
    cout << "search bright3\n" << endl;
    i=units.find(';'+unitnumstr+':',0);
    i+=(unitnumstr.length())+1;
    j=units.find(';',i); j+=i;
    str=units.substr(i,j-i);
    cout << "search bright4\n" << endl;
    while(0)//tt>>TrajectsOfThisUnit[k])
    {
        k++;
    }
    for(i=0; i<sizex; i++)
    {
        for(j=0; j<sizey; j++)
        {
            for(l=0;l<k;l++)
            {
            if (traject[i][j]==TrajectsOfThisUnit[k])//т.е. в случае если пиксел лежит в требуемом юните
            SumBright+=y[i][j];
            }
        }
    }
    AverBrig=SumBright/(sizex*sizey);
    return AverBrig;
}
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
05.03.2013, 18:28 #4
1.Используй тэги при вставке кода С++.(Это при написании кода на форуме)
2.Какой текст ошибки.
3.Попробуй проверить тип данного
Пример:
C++
1
2
3
4
 double a=12.5;
 
    if(*typeid(a).name()=='d')
        cout<<"double"<<endl;
0
melifaro
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 15
05.03.2013, 18:31  [ТС] #5
проверила, тип ожидаемый: int

Добавлено через 51 секунду
Текста ошибки нет: просто при запуске выводит последний перед этой строчкой cout, после чего говорит, что программа прекратила работу, и предлагает искать ошибки в интернете и закрыть ее
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
05.03.2013, 18:39 #6
Не пойму, что вы мучаетесь, есть же std::to_string
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <string>
 
int main() 
{
    double f = 23.43;
    std::string f_str = std::to_string(f);
    std::cout << f_str << '\n';
}
http://en.cppreference.com/w/cpp/string/basic_string/to_string
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
05.03.2013, 19:33 #7
yuron_477 вы забыли уточнить что данная возможность действует при стандарте с++11,
у меня например не работает, нет такого метода to_string();
IDE --- Qt Creator 2.5.2
Основан на Qt 4.8.2 (32-х битной)
Собран Aug 19 2012 в 15:01:45
0
melifaro
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 15
05.03.2013, 22:02  [ТС] #8
error: to_string was not declared in this scope

Добавлено через 1 минуту
Видимо, не действует.
Я решительно не могу понять, почему падает программа
0
Hrobak
289 / 169 / 11
Регистрация: 22.03.2010
Сообщений: 483
Завершенные тесты: 1
05.03.2013, 22:13 #9
Как уже сказали, std::to_string есть в новом стандарте c++11. Для использования этой возможности в Qt, версия компилятора у меня G++ 4.7.2, я добавляю в .pro файл проекта строку
Код
QMAKE_CXXFLAGS += -std=c++0x
0
05.03.2013, 22:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2013, 22:13
Привет! Вот еще темы с ответами:

Реализация функции char *padl(const char *string, int len, int c=' ') - C++
Реализовать функцию возвращающую указатель на новую строку длины len, полученную из string либо удалением лишних символов слева , либо...

Как вставить элемент и вывести элементы на экран в map<string, map<string,int>> ? - C++
У меня есть map&lt;string, map&lt;string,int&gt;&gt;, в него надо добавить элементы (типа Ivanov potato 200) Использовать именно map&lt;string,...

Функция isspace и тип string: Не существует подходящей функции преобразования из "std::string" в "int" - C++
Добрый день! Я только начинаю изучать язык c++ по книге &quot;Язык программирования С++. Базовый курс 5-е изд 2014(Стэнли Б. Липпман)&quot;. ...

Int to string - C++
Помогите перевести из Int в String, среда разработки: VS10 Express


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru