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

Конвертировать число от 1 до 999 в прописную строку - C++

Восстановить пароль Регистрация
 
fantompg
5 / 5 / 0
Регистрация: 22.11.2011
Сообщений: 82
01.10.2012, 08:51     Конвертировать число от 1 до 999 в прописную строку #1
Дайте совет, исправить ошибки.
Программа должна конвертировать число от 1 до 999 в прописную строку.

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <conio.h>
 
std::string towords(int numb);
 
int main()
{
    int numb=INT_MAX;
    std::string str=towords(numb);
    std::cout<<numb<<" = "<<str;
    
    getch();
    return EXIT_SUCCESS;
}
 
std::string towords(int numb){
    //массив, для определения разряда, в котором находимся(сотни,десятки,еденицы...)
    int osn[11]={0,1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000};
 
    //массив оснований
    std::string basis[11][10]={
        {"","","","","","","","","",""},
        {"","один","два","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","одна","две","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","один","два","три","четыре","пять","шесть","семь","восемь","девять"},
        {"","десять","двадцать","тридцать","сорок","пятьдесят","шестьдесят","семьдесят","восемьдесят","девяносто"},
        {"","сто","двести","триста","четыреста","пятьсот","шестьсот","семьсот","восемьсот","девятьсот"},
        {"","один","два","три ","четыре","пять","шесть","семь","восемь","девять"}};
 
    //массив окончаний
    std::string termination[10][10]={
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяча","","","миллион","","","миллиард"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысячи","","","миллиона","","","миллиарда"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"},
        {"","","","тысяч","","","миллионов","","","миллиардов"}};
 
    std::string dec[10]={"десять","одиннадцать","двенадцать","тринадцать","четырнадцать","пятнадцать","шестнадцать","семнадцать","восемнадцать","девятнадцать"};
    std::string result;
 
    if (!numb){
        result="ноль";
        return result;
    }
    int n1=numb;
    int cnt=0;
 
    //подсчет количесива цифр в числе
    while (numb){
        numb/=10;
        ++cnt;
    }
    int celoe=0;
 
    //перевод
    while (n1){
        if (!((cnt+1) % 3)){
            if ((n1/osn[cnt])==1){
                    n1%=osn[cnt];
                    --cnt;
                    celoe=n1/osn[cnt];
                    n1%=osn[cnt];
                    result+=dec[celoe];
                --cnt;
                if (!(cnt % 3))
                    result+=" "+termination[0][cnt]+" ";
            }
            if (!cnt) break;
        }
        celoe=n1/osn[cnt];
        n1%=osn[cnt];
        result+=basis[cnt][celoe]+" ";
        --cnt;
        if (!(cnt % 3))
            result+=termination[celoe][cnt]+" ";
    }
 
    return result;
}
Ошибки:
1>------ Build started: Project: Practica 1, Configuration: Debug Win32 ------
1>Compiling...
1>Practica 1.cpp
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(10) : error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)
1> c:\program files\microsoft visual studio 8\vc\include\ostream(650): could be 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)' [found using argument-dependent lookup]
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(697): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<char,std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)' [found using argument-dependent lookup]
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(735): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const char *)' [found using argument-dependent lookup]
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(782): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,char)' [found using argument-dependent lookup]
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(906): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const signed char *)' [found using argument-dependent lookup]
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(913): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,signed char)' [found using argument-dependent lookup]
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(920): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,const unsigned char *)' [found using argument-dependent lookup]
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(927): or 'std::basic_ostream<_Elem,_Traits> &std::operator <<<std::char_traits<char>>(std::basic_ostream<_Elem,_Traits> &,unsigned char)' [found using argument-dependent lookup]
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(168): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ostream<_Elem,_Traits> &(__cdecl *)(std::basic_ostream<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(174): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ios<_Elem,_Traits> &(__cdecl *)(std::basic_ios<_Elem,_Traits> &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(181): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::ios_base &(__cdecl *)(std::ios_base &))'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(188): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::_Bool)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(208): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(short)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(241): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned short)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(261): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(int)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(286): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__w64 unsigned int)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(306): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(326): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__w64 unsigned long)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(347): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(__int64)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(367): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned __int64)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(388): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(float)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(408): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(double)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(428): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(long double)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(448): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(const void *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 8\vc\include\ostream(468): or 'std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_streambuf<_Elem,_Traits> *)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> while trying to match the argument list '(std::basic_ostream<_Elem,_Traits>, std::string)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::_String_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_iterator<_Elem,_Traits,_Alloc>' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(438) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::_String_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_iterator<_Elem,_Traits,_Alloc>' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(438) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::_String_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_iterator<_Elem,_Traits,_Alloc>' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(438) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::_String_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_iterator<_Elem,_Traits,_Alloc>' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(438) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::_String_const_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_const_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_const_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_const_iterator<_Elem,_Traits,_Alloc>' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(298) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::_String_const_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_const_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_const_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_const_iterator<_Elem,_Traits,_Alloc>' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(298) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::_String_const_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_const_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_const_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_const_iterator<_Elem,_Traits,_Alloc>' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(298) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::_String_const_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_const_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_const_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_const_iterator<_Elem,_Traits,_Alloc>' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(298) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::reverse_iterator<_RanIt> std::operator +(_Diff,const std::reverse_iterator<_RanIt> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xutility(1809) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::reverse_iterator<_RanIt> std::operator +(_Diff,const std::reverse_iterator<_RanIt> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xutility(1809) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::reverse_iterator<_RanIt> std::operator +(_Diff,const std::reverse_iterator<_RanIt> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xutility(1809) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2784: 'std::reverse_iterator<_RanIt> std::operator +(_Diff,const std::reverse_iterator<_RanIt> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'std::string'
1> c:\program files\microsoft visual studio 8\vc\include\xutility(1809) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(75) : error C2677: binary '+' : no global operator found which takes type 'std::string' (or there is no acceptable conversion)
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(81) : error C2784: 'std::_String_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_iterator<_Elem,_Traits,_Alloc>' from 'const char [2]'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(438) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(81) : error C2784: 'std::_String_const_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_const_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_const_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_const_iterator<_Elem,_Traits,_Alloc>' from 'const char [2]'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(298) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(81) : error C2784: 'std::reverse_iterator<_RanIt> std::operator +(_Diff,const std::reverse_iterator<_RanIt> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const char [2]'
1> c:\program files\microsoft visual studio 8\vc\include\xutility(1809) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(81) : error C2676: binary '+' : 'std::string' does not define this operator or a conversion to a type acceptable to the predefined operator
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(84) : error C2784: 'std::_String_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_iterator<_Elem,_Traits,_Alloc>' from 'const char [2]'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(438) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(84) : error C2784: 'std::_String_const_iterator<_Elem,_Traits,_Alloc> std::operator +(_String_const_iterator<_Elem,_Traits,_Alloc>::difference_type,std::_String_const_iterator<_Elem,_Traits,_Alloc>)' : could not deduce template argument for 'std::_String_const_iterator<_Elem,_Traits,_Alloc>' from 'const char [2]'
1> c:\program files\microsoft visual studio 8\vc\include\xstring(298) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(84) : error C2784: 'std::reverse_iterator<_RanIt> std::operator +(_Diff,const std::reverse_iterator<_RanIt> &)' : could not deduce template argument for 'const std::reverse_iterator<_RanIt> &' from 'const char [2]'
1> c:\program files\microsoft visual studio 8\vc\include\xutility(1809) : see declaration of 'std::operator +'
1>e:\учеба\практика\прога\practica 1\practica 1\practica 1.cpp(84) : error C2676: binary '+' : 'std::string' does not define this operator or a conversion to a type acceptable to the predefined operator
1>Build log was saved at "file://e:\УЧЕБА\практика\Прога\Practica 1\Practica 1\Debug\BuildLog.htm"
1>Practica 1 - 22 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2012, 08:51     Конвертировать число от 1 до 999 в прописную строку
Посмотрите здесь:

Преобразовать число в строку/строкук в число C++
C++ Программа на С, которая вводит число типа int с клавиатуры, преобразует ее в строку (str), выводит на дисплей число и строку.
C++ Преобразовать строку->число->строку
C++ Как конвертировать текст в число
C++ Дано целое число , лежащие в диапазоне от -999 до 999.Вывести строку - словесного описание данного числа вида "отрицательное двухзначное число", "отри
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
01.10.2012, 09:16     Конвертировать число от 1 до 999 в прописную строку #2
#include <string>
fantompg
5 / 5 / 0
Регистрация: 22.11.2011
Сообщений: 82
01.10.2012, 11:38  [ТС]     Конвертировать число от 1 до 999 в прописную строку #3
А почему вместо предложения ввести число, все считается автоматом?
Миниатюры
Конвертировать число от 1 до 999 в прописную строку  
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
01.10.2012, 12:12     Конвертировать число от 1 до 999 в прописную строку #4
fantompg, Может потому, что у вас нет считывания? Переменная сразу установлена в INT_MAX и запроса ввода нету
fantompg
5 / 5 / 0
Регистрация: 22.11.2011
Сообщений: 82
01.10.2012, 15:54  [ТС]     Конвертировать число от 1 до 999 в прописную строку #5
А сможет кто подсказать, как это осуществить?
fantompg
5 / 5 / 0
Регистрация: 22.11.2011
Сообщений: 82
02.10.2012, 15:34  [ТС]     Конвертировать число от 1 до 999 в прописную строку #6
Почему во всех моих программах одна и та же ошибка:
>c:\program files\microsoft visual studio 8\vc\include\string(3) : fatal error C1014: too many include files : depth = 1024
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream>
#include <map>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef double          T_mass;
typedef double          T_factor;
typedef std::string     T_str;
/////////////////////////////////////////////////////////////////////////////////////////
struct  T_name_and_factor_for_gm
{    
    T_str       name_;
    T_factor    factor_;
    //-----------------------------------------------------------------------------------
    T_name_and_factor_for_gm
        (
            T_str       name    =   T_str(),
            T_factor    factor  =   0
        )
        :
        name_       ( name      ),
        factor_     ( factor    )
    {}
};
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::map<int, T_name_and_factor_for_gm>    T_name_and_factor_for_gm_of_ind;
/////////////////////////////////////////////////////////////////////////////////////////
void  fill_name_and_factor_for_gm_of_ind( T_name_and_factor_for_gm_of_ind&  name_and_factor_for_gm_of_ind )
{
    name_and_factor_for_gm_of_ind[1]   =   T_name_and_factor_for_gm( "кг",  1e3     );
    name_and_factor_for_gm_of_ind[2]   =   T_name_and_factor_for_gm( "мг",  1e-3    );
    name_and_factor_for_gm_of_ind[3]   =   T_name_and_factor_for_gm( "г",   1       );
    name_and_factor_for_gm_of_ind[4]   =   T_name_and_factor_for_gm( "т",   1e6     );
    name_and_factor_for_gm_of_ind[5]   =   T_name_and_factor_for_gm( "ц",   1e5     );
}
/////////////////////////////////////////////////////////////////////////////////////////
void  print_mass_in_kg
    (
        int                                 ind,
        T_mass                              mass,
        T_name_and_factor_for_gm_of_ind&    name_and_factor_for_gm_of_ind
    )
{
    std::cout   <<  mass
                <<  ' '
                <<  name_and_factor_for_gm_of_ind[ ind ].name_
                <<  " = "                
                <<      mass 
                    *   name_and_factor_for_gm_of_ind   [ ind  ].factor_
                    /   name_and_factor_for_gm_of_ind   [ 1    ].factor_
 
                <<  ' '
                <<  name_and_factor_for_gm_of_ind       [ 1    ].name_;
}
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    T_name_and_factor_for_gm_of_ind    name_and_factor_for_gm_of_ind;
    fill_name_and_factor_for_gm_of_ind( name_and_factor_for_gm_of_ind );
 
    for(;;)
    {
        int     ind     =   0;
        do
        {
            std::cout   <<  "индекс единицы измерения массы ("
                        <<  name_and_factor_for_gm_of_ind.begin     ()->first
                        <<  ".."
                        <<  name_and_factor_for_gm_of_ind.rbegin    ()->first
                        <<  ") = ";
            std::cin    >>  ind;
        }while  (
                    name_and_factor_for_gm_of_ind.find( ind )   ==  name_and_factor_for_gm_of_ind.end()
                );
        
        T_mass  mass    =   0;
        std::cout   <<  "масса в "
                    <<  name_and_factor_for_gm_of_ind[ ind ].name_
                    <<  " = ";
        std::cin    >>  mass;
        if(mass == 0)
        {
            break;
        }
 
        print_mass_in_kg
            (
                ind,
                mass,            
                name_and_factor_for_gm_of_ind
            );
 
        std::cout   <<  std::endl
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl;
    }    
}
Добавлено через 6 часов 3 минуты
АУ! Люди, добрые! Подскажите.
margarin
 Аватар для margarin
35 / 35 / 0
Регистрация: 02.06.2012
Сообщений: 332
17.11.2012, 03:40     Конвертировать число от 1 до 999 в прописную строку #7
C++
1
#include <string.h>
не?
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
17.11.2012, 03:50     Конвертировать число от 1 до 999 в прописную строку #8
Цитата Сообщение от margarin Посмотреть сообщение
не?
Не. string.h - это заголовочный файл C для работы со строками (кстати, если нужны сишные функции, в C++ вместо него правильней подключать cstring). Для работы с классом std::string нужно подключать плюсовый хэдер string. Если у тебя работало без него - значит, он неявно подключается в iostream.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2012, 04:05     Конвертировать число от 1 до 999 в прописную строку
Еще ссылки по теме:

Конвертировать машинное представление float в строку из 4 символов C++
160 битное значение, представляющее целое число, конвертировать в string в десятичном представлении C++
C++ Дано целое число в диапазоне 100–999. Вывести строку-описание данного числа, например: 256 — «двести пятьдесят

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11850 / 6829 / 773
Регистрация: 27.09.2012
Сообщений: 16,932
Записей в блоге: 2
Завершенные тесты: 1
17.11.2012, 04:05     Конвертировать число от 1 до 999 в прописную строку #9
Цитата Сообщение от fantompg Посмотреть сообщение
Почему во всех моих программах одна и та же ошибка:
Вы точно больше ничего не подключаете, кроме
C++
1
2
3
#include <iostream>
#include <map>
#include <string>
Yandex
Объявления
17.11.2012, 04:05     Конвертировать число от 1 до 999 в прописную строку
Ответ Создать тему
Опции темы

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