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

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

Войти
Регистрация
Восстановить пароль
 
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
#1

Почему ноль не преобразуеться в string - C++

04.07.2011, 08:46. Просмотров 350. Ответов 6
Метки нет (Все метки)

Делаю преобразование из типа int или double в string

и когда переменная int или double равна нулю то приходиться делать доп проверку чтобы в переменной string был ноль

сейчас делаю так

C++
1
2
3
4
5
6
7
8
int i=0;
string i_str; 
char szbuff[255]; 
 
sprintf(szbuff, "%.d", i);  
i_str=szbuff;
 
if(i_str==""){i_str="0";}

можно как то обойтись без if(i_str==""){i_str="0";} может в моем преобразовании какая то ошибка ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2011, 08:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему ноль не преобразуеться в string (C++):

Где и почему используют ту или иную строку std::string, char[], System::String^ ? - C++
Где и почему используют ту или иную строку std::string, char, System::String^ ? Объясните пожалуйста где нужно использовать...

Почему выводит ноль? - C++
Пожалуйста, помогите с программой. Не могу понять, почему выводит ноль. #include<iostream> using namespace std; double fac(int...

Почему выводится ноль? - C++
Помогите вывести на экран значение , что я не делал , чем я не пытался оно дает 0.Не надо рассказывать про count , меня интересует именно ...

Почему в итоге выдает ноль, когда возвращаем массив из функции? - C++
Идея такая, есть массив (Alphabet), как ни странно отвечает за наши символы, вводимые с клавиатуры, за которые отвечает массив Source, а...

Почему для поиска по массиву берется значение его первого элемента, а не ноль? - C++
Свем доброго времени суток и всех с праздником! #include "stdafx.h" #include <iostream> #include <cmath> using namespace std; ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
An1ka
65 / 70 / 2
Регистрация: 30.06.2011
Сообщений: 176
04.07.2011, 09:04 #2
C++
1
sprintf(szbuff, "%d", i);
Так будет 0 переводить в строку
1
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
04.07.2011, 11:00  [ТС] #3
An1ka,

спасибо с int теперь все ок

а что с double делать ?

C++
1
2
3
4
5
double d=0;
string d_str; 
char szbuff[255]; 
sprintf(szbuff, "%.4g", d); 
d_str=szbuff;
вот такой код тоже требует проверку на ноль иначе ничего не пишет в переменную string
0
-=ЮрА=-
Заблокирован
Автор FAQ
04.07.2011, 11:11 #4
Для double вот так попробуй
C++
1
sprintf(szbuff, "%.4f", d);
1
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
04.07.2011, 13:20 #5
-=ЮрА=-, ключ %f используется для типа float, для double лучше будет %lf
1
nill
9 / 9 / 0
Регистрация: 16.08.2009
Сообщений: 417
04.07.2011, 15:02  [ТС] #6
fasked,
а есть ли в этом смысл если всегда пишу %.4f то есть не больше 4 знаков после запятой ?
0
grizlik78
Эксперт С++
1911 / 1443 / 112
Регистрация: 29.05.2011
Сообщений: 3,000
04.07.2011, 15:12 #7
Цитата Сообщение от nill Посмотреть сообщение
а есть ли в этом смысл если всегда пишу %.4f то есть не больше 4 знаков после запятой ?
Смысл в том, что если будете всегда использовать %lf для double, то не ошибётесь в функции scanf, для которой, в отличие от printf, есть разница между %f и %lf
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2011, 15:12
Привет! Вот еще темы с ответами:

Почему класс не принимает значение string? - C++
Класс не принимает тип string, почему? #pragma once namespace D { class Pract { private: string AppName;

Не создаётся объект string на ровном месте! Почему? - C++
Ребята, чё-то я не пойму: #include <string> #include <stdio.h> #include <iostream> using namespace std; int main () { char...

Почему программа возврашает только 1 значение слов в string? - C++
Программа должна считать количество слов - но всегда пишет только 1. #include <iostream> #include <string> using...

Почему Не Определён Ctrcmp, тема про заголовочный файл string.h - C++
Здравствуйте вот код, компилятор пишет что не определён ctrcmp, заголовочный файл писал по разному <string.h>,<string>,<cstring>, но всё...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.07.2011, 15:12
Ответ Создать тему
Опции темы

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