LINUX.ORG.RU

C++ конвертация строк в цифры

 


0

2

Как конвертировать я знаю, например так:

if (mNode) {
std::string vx,vy,vz;
vx = vecxEditBox->getCaption();
vy = vecyEditBox->getCaption();
vz = veczEditBox->getCaption();
vecx = atof(vx.c_str());
vecy = atof(vy.c_str());
vecz = atof(vz.c_str());
mNode->setPosition(Ogre::Vector3(vecx,vecy,vecz));
}
Но я так замучился, посоветуйте какую нибудь небольшую библиотеку для конвертации строк в цифры и наоборот. Небольшую а не буст, что бы удобно было, наподобие как в сишарпе int_name.ToString();

Перемещено mono из talks



Последнее исправление: raycast (всего исправлений: 2)

iostream :)
а точнее sstream

Jetty ★★★★★
()
#include <sstream>
...
std::istringstream iss("123");
int num;
iss >> num; 
son_of_a_gun
()
Ответ на: комментарий от CYB3R

А для кого плашку в толксах повесили? Не для тебя ли? Язабан!

По твоему было бы лучше, если я это в «разработку» запостил? Не смеши.

raycast
() автор топика

Небольшую а не буст

То есть boost::lexical_cast не хотим чисто по религиозным причинам?

для конвертации строк в цифры и наоборот

Навелосипедь сам шаблончик на std::stringstream, там дел-то на 10 минут.

Manhunt ★★★★★
()

Такой вброс надо в Development делать.

encyrtid ★★★★★
()
Ответ на: комментарий от Manhunt

Не под все девайсы есть свежие конпеляторы.

пусть решают эту проблему и не мешают остальным пользоваться стандартом

wota ★★
()

Небольшую а не буст, что бы удобно было

Если на каждый чих в проект тянуть по мелкой либе или писать свой велосипед, то проект превратится в неподдерживаемый кусок разнородного говна. Поэтому бери буст и не парь мозг.

Тем более boost::lexical_cast сейчас это не просто запись/чтение потока. Сейчас там сделаны жесткие оптимизации и реально оно работает даже быстрее чем sscanf/sprintf.

Reset ★★★★★
()

небольшую библиотеку
что бы удобно было, наподобие как в сишарпе

#include <sstream>

template<typename N>
N strToNumb(const std::string& str) {
	std::istringstream iss(str);
	N numb;
	iss >> numb; 
	return numb;
}

template<typename N>
std::string numbToStr(N numb) {
	std::ostringstream oss;
	oss << numb;
	return oss.str();
}

/thread Для универсальных строк делать не стал, сам сделаешь если надо.

son_of_a_gun
()

цыфры

Пожалуйста, скажи, что это неудачная грамматическая шутка. Никогда больше так не делай! А то граммар-гестапо придет за тобой и заберет в граммар-освенцим, а там очень-очень плохо. Там всех круглыми сутками без сна и отдыха заставляют писать диктант, сочинение и изложение.

Sociopsih ★☆
()
Ответ на: комментарий от son_of_a_gun

/thread

А где проверка, что строка вычиталась целиком, без остатка?

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от Manhunt

Это проблема нового стандарта

никаких проблем у него нет, наоборот - в нем очень много полезных нововведений

а не старых устройств.

оригинальная позиция, у нас есть говно мамонта с g++-2.95 - так что всем нельзя использовать новые стандарты

wota ★★
()
Ответ на: комментарий от Sociopsih

Я с утра сижу различные апи изучаю, у меня мозг уже кипит, так что тебе повезло, что еще не в каждом слове по десятке ошибок.

raycast
() автор топика
Ответ на: комментарий от Manhunt

если бы его понимало говно мамонта с g++-2.95

если оно настолько никому не нужно, что под него некому собрать/адаптировать gcc 4.7, например, то пусть так и сдыхает тихонько в стороне от цивилизации

wota ★★
()
Ответ на: комментарий от wota

некому собрать/адаптировать gcc 4.7, например

А gcc 4.7 новый стандарт толком не поддерживает. Грепни по слову «No»: http://gcc.gnu.org/gcc-4.7/cxx0x_status.html

некому собрать/адаптировать gcc 4.7, например

Давай, собери мне gcc 4.7 под glibc 2.3.6

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

толком не поддерживает. Грепни по слову «No»

за исключением Concurrency - даже лучше, наверное, чем поддержка древнего C99

Давай, собери мне gcc 4.7 под glibc 2.3.6

http://gcc.gnu.org/install/prerequisites.html

тут ничего нет про версию glibc, clang я собирал под glibc 2.4, если у gcc есть проблемы с этим - пиши багрепорт

wota ★★
()
Ответ на: комментарий от wota

за исключением Concurrency

Оправдания такие оправдания.

тут ничего нет про версию glibc, если у gcc есть проблемы с этим - пиши багрепорт

Проблемы с этим есть у crosstool-ng и подобных. Никому не придёт в голову тащить новый компилятор на «говно мамонта» просто потому, что wota хочет использовать новые экспериментальные фишечки.

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

Оправдания такие оправдания.

придирки такие придирки

Проблемы с этим есть у crosstool-ng и подобных

ну и не лезьте с вашими проблемами к ЯП, это ваши проблемы, даже не отдельно взятого компилятора

Никому не придёт в голову тащить новый компилятор на «говно мамонта»

ес-но - оно уже окаменело, есть конечно неудачники, которые им занимаются, но они почти все просто правят старый код, им новый стандарт не мешает

просто потому, что wota хочет использовать новые экспериментальные фишечки.

только идиот может считать текущий официальный стандарт ЯП «эксперементальными фишечками»

wota ★★
()

ты разделом не ошибся?

leave ★★★★★
()
Ответ на: комментарий от wota

только идиот может считать текущий официальный стандарт ЯП «эксперементальными фишечками»

Они перестанут быть экспериментальными лет через 5. Когда их, наконец-то, реализуют в компиляторе. Народ начнет использовать, по багам станет ясно, что в дизайне реализации была ошибка. Реализуют заново. Отладят. Вот тогда.

Manhunt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.