С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 10.03.2013
Сообщений: 1
1

Неизвестная конструкция

17.03.2013, 12:42. Показов 628. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача поставлена так: Написать программу, переводящую арабские числа в римские. Задача упрощается тем, что можна считать, что 40=XXXX, 9=VIIII и тому подобное.
Саму программу я написал, но меня волнует проверка на ввод. Я ее где-то выкопал и не знаю, как она работает.

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
#include <iostream>
  #include <conio.h>
    #include <stdio.h>
using namespace std;
int roman(int i, int j, char k)
{
while(i>=j)
{
putchar(k);
i=i-j;
}
return i;
}
int main()
{
     
           int Number;   
   while(true){
        cout << "Type your number: ";
        cin >> Number;                           
        if ( (cin.peek() == '\n') & (Number>0)){           
            cin.get();                      
            break;
        }
        else{
            cout <<"You have typed wrong number, type it again:"<<endl;
            cin.clear();                    
            while (cin.get() != '\n'){}     
        }  
    
    fflush(stdin);
}    
 cout << "Transformed number into Roman system:\n";
                        Number=roman(Number,1000,'M');
                        Number=roman(Number,500,'D');
                        Number=roman(Number,100,'C');
                        Number=roman(Number,50,'L');
                        Number=roman(Number,10,'X');
                        Number=roman(Number,5,'V');
                        Number=roman(Number,1,'I');   
    cout <<"\n";
   
    getch ();
    return 0;
}

меня волнует эта часть. Можете разжевать ее, кто в теме?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  int Number;   
   while(true){
        cout << "Type your number: ";
        cin >> Number;                           
        if ( (cin.peek() == '\n') & (Number>0)){           
            cin.get();                      
            break;
        }
        else{
            cout <<"You have typed wrong number, type it again:"<<endl;
            cin.clear();                    
           while (cin.get() != '\n'){}     
        }  
    
    fflush(stdin);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2013, 12:42
Ответы с готовыми решениями:

Неизвестная ошибка
Доброго время суток, я тут с толкнулся с непонятной штукой, все правильно точно так же как и...

Неизвестная ошибка в VS
Здравствуйте. Я буквально вчера решил начать осваивать C++, потому у меня сразу возникли проблемы....

неизвестная функция
Здравствуйте ! Хочу откомпилировать код одной программы написанной на С на компиляторе borland...

неизвестная ошибка
Помогите с кодом который из книги по изучению С++: Вот неработающий код: #include...

1
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
17.03.2013, 13:39 2
Это:
C++
1
2
 cin.clear();                    
           while (cin.get() != '\n'){}
Сброс флага ошибки и очистка птока ввода(cin.get() будет извлекать по символу из потока пока не встретит '\n'. Его тоже извлечёт). После этого поток ввода чист и готов к работе.

Добавлено через 4 минуты
Первая часть кода: после нажатия Enter проверяется, есть ли в потоке, между последней цифрой и '\n' (Enter), не цифры (если да, то cin.peek() не равен '\n') и положительно ли введённое число. Если всё правильно, то '\n' извлекается из потока (cin.get())(чтобы дальше не мешал) и выход из цикла ввода.

Добавлено через 4 минуты
Только вместо & нужно && писать.
0
17.03.2013, 13:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2013, 13:39
Помогаю со студенческими работами здесь

Неизвестная ошибка с++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;fstream&gt; #include &lt;math.h&gt;...

Неизвестная ошибка
Ребята все работает все запускается, но ошибка не исчезает... Подскажите...

Неизвестная ошибка
При написании кода столкнулся с такой ситуацией. При запуске программы происходит экстренное...

Неизвестная функция
#include &quot;std_lib_facilities.h&quot; class Token { public: char kind; double...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru