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

из int в string - C++

Восстановить пароль Регистрация
 
letnjaja
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
03.11.2012, 17:32     из int в string #1
объясните ,пжлста, где ошибка.
собственно задание такое:
Enter one real and one integer number: 2.71828183 1392
The real is: _ _ _ _ _ _2.718
The integer is: _ _ _ _1392
я перевожу в string, чтобы посчитать количество символов и затем вывести эти линии "_" перед числом
сначало округляю число, затем считаю, 5 символов, как я понимаю просто +еще один символ(того 6), во втором числе 4
но у меня получается скажем если я ввожу 2.444 его разделяет на два числа целую и реальную часть( 2 и 0.444), а ввод второго числа игнорируется, и с подсчетом символов в реальной части тоже что-то не то
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
36
37
38
39
40
41
42
while(true)
{
        
cout<<"enter one real and one integer number:"<<endl;
cin>>number7;
cin>>real1;
if( cin.good())
    {
               
               cout<<"The real number is:"<<endl;
               std::cout<<std::fixed<<std::setprecision(3)<<real1<<std::endl;
               
               stringstream ss;//potok dlja strok
               
               ss <<real1; //  v potok 4islo
               string str1;
               ss>> str1; // iz potoka stroka
               cout <<"size of real:"<< ((str1.size()+1)) << endl; //vivod koli4estva simvolov v stroke
               for (int i=0;i<=((str1.size()+1));i++){
               cout<<"_";
               }
               cout<<real1;
               cout<<endl;
               
               cout<<"The integer is:"<<number7<<endl;
               stringstream s;//potok dlja strok
               
               s << number7; //  
               string str;
               s >>str; // 
               cout <<"size of int:"<< str.size() << endl; 
               for (int i=0;i<str.size();i++){
               cout<<"_";}
               cout<<number7;
               cout<<endl;
               cin.ignore(10, '\n');
               break;
     }
     cin.clear();
     cout << "nepraviljnij vvod " << endl;
     cin.ignore(10, '\n');
     }
Миниатюры
из int в string  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2012, 17:32     из int в string
Посмотрите здесь:

string to int, int to string C++
C++ Int to string
C++ из int в string?
C++ int в string
C++ String в Int
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
03.11.2012, 18:39     из int в string #2
letnjaja, если вам необходимо сделать выравнивание, то всё намного проще
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
#include <iostream>
#include <iomanip>
 
int main() {
 
    using namespace std;
 
    int i;
    double d;
 
    cout << "Enter one real and one integer number: ";
    cin >> d >> i;
 
    // указываем символ заполнитель
    cout.fill('_');  
 
    // устанавливаем выравнивание текста по левому краю
    cout.setf(ios::left); 
 
    // с помощью setw резервируем поле шириной в 20 символов для записи "The real is: " 
    // все оставшиеся свободными ячейки будут заполнены символом '_'(cм. строку 14)    
    cout << setw(20) << "The real is: " << d << endl;
    
    // здесь то же, что и выше
    cout << setw(20) << "The integer is: " << i << endl;
}
letnjaja
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
03.11.2012, 18:44  [ТС]     из int в string #3
спасибо, наверное, потому что это задание на ввод, вывод, а я тут мозг ломаю))
letnjaja
 Аватар для letnjaja
53 / 3 / 0
Регистрация: 08.10.2011
Сообщений: 200
03.11.2012, 19:01  [ТС]     из int в string #4
а как сделать, чтобы цифры по правому краю равнялись, тоесть чтоб 4 под нулями были?
Изображения
 
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
03.11.2012, 21:36     из int в string #5
letnjaja, std::right
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
03.11.2012, 21:47     из int в string #6
C++
1
2
3
4
5
6
7
    cout.fill('_');
 
    cout << left << setw(20) << "The real is: "
         << right << setw(20) << d << endl;
         
    cout << left << setw(20) << "The integer is: "
         << right << setw(20) << i << endl;
Yandex
Объявления
03.11.2012, 21:47     из int в string
Ответ Создать тему
Опции темы

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