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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
#1

нет декларации to_string - C++

23.03.2013, 14:27. Просмотров 1119. Ответов 18
Метки нет (Все метки)

Программа сочетает 2 ф-ии: Если есть второй аргумент (пришлось данное условие задавать статично =\) то сравниваем str1 с str2, если второй аргумент не задан (не удовлетворяет статичному условию), то выводим размер str1.
Ругается на декларацию в области видимости.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
using namespace std;
 
string strr(string str1, string str2="hello")
{
    if(str2=="hello")
    return str1.size()>=str2.size()? str1:str2;
    else
    return to_string(str1.size());
}
int main ()
{
    cout<<strr("garrr")<<endl;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 14:27     нет декларации to_string
Посмотрите здесь:

Нет декларации «EOF» в этой области видимости - C++
Это не упражнение, а просто пример задачи, но видимо в нёс есть какая-то ошибка и я хочу узнать какая На всякий пожарный заголовочный...

To_string эквивалент - C++
http://www.cplusplus.com/reference/string/to_string/ это из С++ 11. У меня вс 2010, очевидно стандарт ниже. Из этого кода: ...

'to_string' is not a member of 'std' - C++
результат должен быть таким : &quot;110100100010000100000100000(и т.д.)&quot; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; ...

'to_string' was not declared in this scope - C++
Всем привет. Программируя, столкнулся с надобность перевода int в string. Нашел в интернете, что в библиотеке string, есть функцию...

'to_string' was not declared in this scope - C++
Использую QT 5 тоесть не видет ету функцию, стрінг подключил, что делать??

не находит std::to_string - C++
Не пойму что не так, выдает ошибку Версия gcc 4.7.2-5 #include &lt;iostream&gt; #include &lt;string&gt; int main(void) { for...

Не работает std::to_string(); - C++
Не работает std::to_string(); -std=c++11 gcc --version =&gt; gcc 5.3.0 Как заставить работать?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
23.03.2013, 14:29     нет декларации to_string #2
У тебя нет функции to_string
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
23.03.2013, 14:38  [ТС]     нет декларации to_string #3
Цитата Сообщение от sovaz1997 Посмотреть сообщение
У тебя нет функции to_string
А если одеть очки?

Может синтаксис не тот? Вернуть нужно интовое значение в стринг. ф-ю, без неё же не вернет...
Был вариант с strcmp, тоже не видело...
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
23.03.2013, 14:43     нет декларации to_string #4
Satansoft, она не описана, не объявлена, но используется.
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
23.03.2013, 14:45     нет декларации to_string #5
Satansoft, да, синтаксис не тот. Ты обращаешься к ф-ии в своей программе. Ее дам нет)
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
23.03.2013, 14:49  [ТС]     нет декларации to_string #6
Разве она не библиотечная? как тогда?
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
23.03.2013, 14:53     нет декларации to_string #7
C++
1
2
3
4
5
6
7
8
9
10
#include <sstream>
...  
else
    {
         std::string buf; 
         std::stringstream ss; 
         ss << str1.size(); 
         ss >> buf; 
         return buf;
    }
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.03.2013, 14:58     нет декларации to_string #8
Цитата Сообщение от Satansoft Посмотреть сообщение
Разве она не библиотечная?
C++11.
-=ЮрА=-
Заблокирован
Автор FAQ
23.03.2013, 15:13     нет декларации to_string #9
Satansoft, лови
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
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
 
template <class T>
string to_string(T param)
{
    string str_ret;
    stringstream ss;
    ss<<param;
    getline(ss, str_ret);
    return str_ret;
}
 
string strr(string str1, string str2="hello")
{
    string str_ret;
    if(strcmp(str1.c_str(), "hello") == 0)
        str_ret = str1.size() < str2.size() ? str2 : str1;
    else
        str_ret = to_string(str1.size());
    return str_ret;
}
 
int main ()
{
    cout<<strr("garrr")<<endl;
    return 0;
}
Проверка http://codepad.org/WadE1Pi7
PS:C++11 поддерживается не всеми компиляторами, to_string функция С++11 потому прежде чем её юзать надо поглядеть а поддерживает ли компилятор С++11. Если не поддерживает - пишем функцию сами(там 4-ри строки можно и написать руками)
Миниатюры
нет декларации to_string  
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
23.03.2013, 15:27  [ТС]     нет декларации to_string #10
Хьюстон, принято.
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
23.03.2013, 15:28     нет декларации to_string #11
Это шаблоны
-=ЮрА=-
Заблокирован
Автор FAQ
23.03.2013, 15:37     нет декларации to_string #12
Цитата Сообщение от Satansoft Посмотреть сообщение
Офигеть бубны, а чет эт такое?
Цитата Сообщение от Satansoft Посмотреть сообщение
template <class T>
string to_string(T param)
- эти каракули означают, что в функцию можем передавать любой параметр хоть дабл хоть стринг templatе - означает шаблон, у меня в коде использована функция-шаблон (она будет применять одно и то же действие к данным разных типов - как раз видим преимущества ООП мы пишем код который одинаково может быть использован для всего)
идём далее

Добавлено через 3 минуты
Цитата Сообщение от Satansoft Посмотреть сообщение
stringstream ss;
- ну и что страшного в стринг потоке, хорошо
fstream fs ясно что это?(поток связанный с файлом), ну а вот stringstream такое же поток только связанный со строкой, т.е мы черпаем данные не из файла а из текстового блока. Зачем его использовал да просто потому что
для данного потока оператор помещения в поток << перегружен для всех известных типов и не важно будет наш
Цитата Сообщение от Satansoft Посмотреть сообщение
ss<<param;
строкой или числом, при добавлении в поток param преобразуется в строковый эквивалент и при извлечении из потока нам будет возвращаться уже его строковое представление

Добавлено через 1 минуту
Фактически stringstream делает за нас всю черновую работу, он узнаёт тип данных, сам преобразует и нам лишь остаётся эти данные подобрать, что я бллагополучно и делаю посредством
Цитата Сообщение от Satansoft Посмотреть сообщение
getline(ss, str_ret);
Добавлено через 1 минуту

Не по теме:

Satansoft, ещё вопросы по коду есть?

Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
23.03.2013, 15:47     нет декларации to_string #13
Самодельные велосипеды - это конечно хорошо (точнее хорошо уметь их делать), но не проще ли С++11 использовать?
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
23.03.2013, 17:38  [ТС]     нет декларации to_string #14
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Satansoft, ещё вопросы по коду есть?
Нет, остальной код ясен, благодарности.
Цитата Сообщение от Kastaneda Посмотреть сообщение
Самодельные велосипеды - это конечно хорошо (точнее хорошо уметь их делать), но не проще ли С++11 использовать?
попытка заюзать 11 стандарт успехом не увенчалась, есть советы по компиляторам?
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
23.03.2013, 17:51     нет декларации to_string #15
Satansoft, Смотря какой компилятор, в любом компиляторе, поддерживающем его можно включить его опцией -std=c++0x или -std=c++11. Как включать - зависит от компилятора/IDE.
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
23.03.2013, 17:52  [ТС]     нет декларации to_string #16
Цитата Сообщение от ForEveR Посмотреть сообщение
Смотря какой компилятор, в любом компиляторе, поддерживающем его можно включить его опцией -std=c++0x или -std=c++11. Как включать - зависит от компилятора/IDE.
Code::Blocks (minGW compile)
MrGluck
Модератор
Эксперт CЭксперт С++
7000 / 4171 / 595
Регистрация: 29.11.2010
Сообщений: 11,073
23.03.2013, 19:13     нет декларации to_string #17
Satansoft, учтите, что std::to_string был включен лишь в версии gcc 4.7.2 На более ранних версиях он не работает. На какой основан ваш mingw?

Добавлено через 1 минуту
Рекомендую след. mingw сборку
http://sourceforge.net/projects/mingwbuilds/
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
23.03.2013, 20:02  [ТС]     нет декларации to_string #18
Цитата Сообщение от MrGluck Посмотреть сообщение
Рекомендую след. mingw сборку
http://sourceforge.net/projects/mingwbuilds/
Уже тянул её, в какой из папок bin искать нужные компиляторы?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 20:07     нет декларации to_string
Еще ссылки по теме:

Количество знаков после точки в to_string - C++
double t1=24.44; double t2=34.44; string line=&quot;&quot;; line=line+std::to_string(t1)+&quot; &quot;+std::to_string(t2); std::cout &lt;&lt; line; ...

Error C2668: std::to_string: неоднозначный вызов перегруженной функции - C++
вот код #include &quot;stdafx.h&quot; #include &lt;Windows.h&gt; #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int...

Декларации - C++
Подскажите пожалуйста, что такое &quot;декларации&quot;?

Неоднозначность декларации - C++
Итак уважаемые знатоки: class Foo{ public: Foo(){}; }; Foo Bar(); Внимание вопрос: как уважающий себя...

Существует что-то наподобие внешней декларации типов? - C++
Доброго времени суток! Возник вопрос, существует что-то наподобие внешней декларации типов? например: header.h : #ifndef HEADER_H ...


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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
7000 / 4171 / 595
Регистрация: 29.11.2010
Сообщений: 11,073
23.03.2013, 20:07     нет декларации to_string #19
Цитата Сообщение от Satansoft Посмотреть сообщение
Уже тянул её, в какой из папок bin искать нужные компиляторы?
mingw/bin далее как на скриншоте подключаете
нет декларации to_string
Yandex
Объявления
23.03.2013, 20:07     нет декларации to_string
Ответ Создать тему
Опции темы

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