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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.97
melifaro
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 15
05.03.2013, 17:40     Перевод из int в string #1
Пожалуйста подскажите что не так. Для перевода пыталась сначала запихнуть 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2013, 17:40     Перевод из int в string
Посмотрите здесь:

string to int, int to string C++
C++ Int to string
C++ Перевод типов string to int
перевод из string в int и обратно C++
C++ Перевод string в int
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
hofmn
Helter Skelter
 Аватар для hofmn
61 / 61 / 1
Регистрация: 19.09.2012
Сообщений: 133
05.03.2013, 17:44     Перевод из int в string #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;
}
melifaro
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 15
05.03.2013, 18:02  [ТС]     Перевод из int в string #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;
}
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
05.03.2013, 18:28     Перевод из int в string #4
1.Используй тэги при вставке кода С++.(Это при написании кода на форуме)
2.Какой текст ошибки.
3.Попробуй проверить тип данного
Пример:
C++
1
2
3
4
 double a=12.5;
 
    if(*typeid(a).name()=='d')
        cout<<"double"<<endl;
melifaro
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 15
05.03.2013, 18:31  [ТС]     Перевод из int в string #5
проверила, тип ожидаемый: int

Добавлено через 51 секунду
Текста ошибки нет: просто при запуске выводит последний перед этой строчкой cout, после чего говорит, что программа прекратила работу, и предлагает искать ошибки в интернете и закрыть ее
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
05.03.2013, 18:39     Перевод из int в string #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/str...ring/to_string
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
05.03.2013, 19:33     Перевод из int в string #7
yuron_477 вы забыли уточнить что данная возможность действует при стандарте с++11,
у меня например не работает, нет такого метода to_string();
IDE --- Qt Creator 2.5.2
Основан на Qt 4.8.2 (32-х битной)
Собран Aug 19 2012 в 15:01:45
melifaro
0 / 0 / 0
Регистрация: 02.03.2013
Сообщений: 15
05.03.2013, 22:02  [ТС]     Перевод из int в string #8
error: to_string was not declared in this scope

Добавлено через 1 минуту
Видимо, не действует.
Я решительно не могу понять, почему падает программа
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2013, 22:13     Перевод из int в string
Еще ссылки по теме:

Функция isspace и тип string: Не существует подходящей функции преобразования из "std::string" в "int" C++
Перевод из int в string C++
C++ Перевод строки string в int посимвольно

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

Или воспользуйтесь поиском по форуму:
Hrobak
288 / 168 / 11
Регистрация: 22.03.2010
Сообщений: 483
Завершенные тесты: 1
05.03.2013, 22:13     Перевод из int в string #9
Как уже сказали, std::to_string есть в новом стандарте c++11. Для использования этой возможности в Qt, версия компилятора у меня G++ 4.7.2, я добавляю в .pro файл проекта строку
Код
QMAKE_CXXFLAGS += -std=c++0x
Yandex
Объявления
05.03.2013, 22:13     Перевод из int в string
Ответ Создать тему
Опции темы

Текущее время: 06:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru