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

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

Войти
Регистрация
Восстановить пароль
 
 
albannikov
12 / 12 / 2
Регистрация: 20.12.2012
Сообщений: 90
#1

Int To Str - C++

14.11.2013, 10:04. Просмотров 921. Ответов 15
Метки нет (Все метки)

Добрый день, товарищи. Подскажите плиз.

Есть структура: SSklad, массив SSklad Sklad[7];, и элемент массива Sklad[i].god (в структуре описан как int)

Не могу перевести Sklad[i].god в String
itoa не помогает.. вариантов много перепробовал.

Подскажите пжалста как корректно выполнить такое преобразование?

З.Ы. пишу в Визуал студии

// Заранее благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2013, 10:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Int To Str (C++):

Int to Str - C++
Подскажите, пожалуйста, как число преобразовать в string (не char)

Функции str.size() и str.length() - в чем их разница? - C++
Существует 2 функции для определения размера строки в string str.size() и str.length() В чем их разница? Почитал, что вроде бы разницы нет...

как создать функцию или программу, чтобы str состояла из цифр,а также давалась новой строке str - C++
как создать функцию или программу, чтобы str состояла из цифр,а также давалась новой строке str

Написать и протестировать функцию, которая по заданной строке Str формирует новую строку, состоящую только из цифр, входящих в Str - C++
Помогите ребят!!!!препод задачи дал для аттестации,сделал фактически все,кроме этой: "Написать и протестировать функцию, которая по...

Программа на С, которая вводит число типа int с клавиатуры, преобразует ее в строку (str), выводит на дисплей число и строку. - C++
Задача направленная на усвоение следующих понятий: прототип функции; заголовок функции; тело функции; параметры, принимаемые функцией...

Как заставить Strncpy вложить в itog часть символов строки str, если дина str больше, чем кол-во нужных нам символов? - C++
strncpy(itog,str,size+1); cout<<itog; itog вообще не выводится Добавлено через 2 минуты Вот код. #include <iostream> ...

15
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.11.2013, 10:08 #2
albannikov, Используй поток stringstream
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <sstream>
#include <string>
#include <iostream>
using namespace std;
 
int main()
{
int a=10;
string s;
stringstream ss;
ss <<a;
ss >>s;//все перевел в s должно быть "10"
cout <<s<<endl;
 
return 0
}
1
albannikov
12 / 12 / 2
Регистрация: 20.12.2012
Сообщений: 90
14.11.2013, 11:43  [ТС] #3
Цитата Сообщение от ninja2 Посмотреть сообщение
stringstream ss;
ss <<a;
ss >>s;//все перевел в s должно быть "10"
В визуале не работает (куча ошибок)

___________
Пробую так ещё:

C++
1
2
3
4
        int a = Sklad[i].god;
        string s;
        char ss;
        s = itoa(a,ss,10);
itoa: невозможно преобразовать параметр 2 из "char" в "char *"
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 11:45 #4
C++
// c++11
string s = to_string(god);
0
albannikov
12 / 12 / 2
Регистрация: 20.12.2012
Сообщений: 90
14.11.2013, 11:50  [ТС] #5
Цитата Сообщение от programina Посмотреть сообщение
string s = to_string(god);
to_string: неоднозначный вызов перегруженной функции
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 12:08 #6
C++
#include <cstdio>
 
int main() 
{
  int god = 2013;
  char s[32];
 
  sprintf(s, "%d", god);
  printf("%s\n", s);
}
Добавлено через 2 минуты
Цитата Сообщение от albannikov Посмотреть сообщение
to_string: неоднозначный вызов перегруженной функции
C++11
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.11.2013, 12:11 #7
В визуал студио 2010 экспресс работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <sstream>
#include <string>
#include <iostream>
using namespace std;
 
int main()
{
int a=10;
string s;
stringstream ss;
ss <<a;
ss >>s;//все перевел в s должно быть "10"
cout <<s<<endl;
 
return 0;
}
Скачай vs2010
0
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 12:12 #8
Цитата Сообщение от albannikov Посмотреть сообщение
itoa: невозможно преобразовать параметр 2 из "char" в "char *"
char ss[32];

И вообще, откройте уже учебник или гугл!
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.11.2013, 12:19 #9
albannikov, можно вручную по разряду переводить, только тебе нужно для начала из числа выделить разряд(одиночный символ) от например число int b(3) можно перевести в char так char k=((char)b+'0'); Просто число разбей на цифры и затем каждую цифру переведи в чар, и потом из этих чар собери строку.
0
albannikov
12 / 12 / 2
Регистрация: 20.12.2012
Сообщений: 90
14.11.2013, 12:29  [ТС] #10
Цитата Сообщение от ninja2 Посмотреть сообщение
Скачай vs2010
10-ая стоит.

Цитата Сообщение от programina Посмотреть сообщение
char ss[32];
Всё заработало, спасибо, а можно разжевать пожулуйста, почему обязательно как символьный массив объявлять?
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.11.2013, 12:30 #11
Цитата Сообщение от albannikov Посмотреть сообщение
10-ая стоит.
И у меня, а у тебя экспресс??
У меня код что выше работает, попробуй мб щас заработает!?
1
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
14.11.2013, 12:39 #12
Цитата Сообщение от albannikov Посмотреть сообщение
10-ая стоит.
Всё заработало, спасибо, а можно разжевать пожулуйста, почему обязательно как символьный массив объявлять?
потому что функция принимает строковый аргумент, а не символьный.

строка - это "abcdef"
символ - это 'a'

ps: http://www.cplusplus.com/reference/cstdlib/itoa/
pps: лучше пользоваться sprintf()
1
albannikov
12 / 12 / 2
Регистрация: 20.12.2012
Сообщений: 90
14.11.2013, 14:39  [ТС] #13
Всем Спасибо, сделал что хотел сделать.

Добавлено через 1 час 56 минут
Возник новый вопрос. Дабы не создавать новой темы спрошу тут, ибо ситуация аналогичная.
Перевожу из float в String
C++
1
_gcvt(b,5,s);
Вещественные числа конвертирует отлично, но вот если число целое, то выводит на экран дополнительную точку.
т.е. в переменной "12" , а он возвращает "12."

Подскажите пжалста, как получить число без точки (если оно целое)?
Збасибо заранее
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
14.11.2013, 14:50 #14
Цитата Сообщение от albannikov Посмотреть сообщение
Подскажите пжалста, как получить число без точки (если оно целое)?
Збасибо заранее
Просто
int a(0);
double b=3.5555;
a=b и у тебя получиться в а только 3

Добавлено через 2 минуты
Если хочешь округлить, то нужно 0.5 добавить к числу типа float, а затем уже переменной типа int присваивать.

Добавлено через 2 минуты
А да не прочитал что нужно просто удали ее нафиг из строки

Добавлено через 2 минуты
Отак сделай str.resize(str.size()-1) и точка в конце пропадет.
0
albannikov
12 / 12 / 2
Регистрация: 20.12.2012
Сообщений: 90
14.11.2013, 14:56  [ТС] #15
Решил так сделать:
C++
1
sprintf(s, "%.1f", b);  // Конвертируем из флоат в стринг
Теперь целые числа выводятся с так "7.0" (было "7.")
Просто числа выводятся в ряд , надо было ровно вывести
0
14.11.2013, 14:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2013, 14:56
Привет! Вот еще темы с ответами:

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec - C++
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

Ошибка при компиляции error: cannot convert ‘int (*)[5]’ to ‘int**’ for argument ‘1’ to ‘void Replase(int**)' - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #define row 5 #define col 5 using namespace...

В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.? - C++
Не понимаю, с чего начинать. Заранее спс.

[Linker error] undefined reference to `sterling(int, int, int)' - C++
#include &lt;iostream&gt; using namespace std; int sterling(int,int,int); int sterling(int,int); int sterling(int); int main() { ...


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

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

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