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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
ВиталийZ
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 12
#1

Почему не выполняется один из операторов ввода,помеченые * - C++

25.12.2008, 12:31. Просмотров 2018. Ответов 11
Метки нет (Все метки)

Один из операторов ввода при повторной работе практически всегда пропускается
Код
#include <stdio.h>
#include <iostream>
 
using namespace std;
 
void main ()
{ 
int i=2,k;
    char s[300],s1;
    i=2; k=2;
    while(i>0)
    {
        cout<<" Input data(1 or other) "<<endl; 
        cin>>k;
    switch(k)
    {
        case 1 :    
        {
            i=2;
            cout<<"Input data"<<endl;
            gets(s); //*
            //cin.getline(s,200,'\n'); // или этот
            cout<<s<<endl;
            cout<<"Continue ?(y,n)"<<endl;
            cin>>s1; //*
            if(s1 !='y') 
                i=-2;
        };
        break;
        default:
        i=-2;
    }
}         
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2008, 12:31     Почему не выполняется один из операторов ввода,помеченые *
Посмотрите здесь:

Перегрузка операторов ввода/вывода - C++
Вроде сделал, но не работает перегрузка оператора ввода. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; ...

Перегрузка операторов ввода\вывода - C++
Вот такой простенький пример описан во многих постах, есть в некоторых видео но у меня в компиляторе mvs 2015, при компиляции выдает...

Перегрузка операторов ввода/вывода. - C++
Класс комплексных чисел. Нужно чтобы программа выводила и вводила в таком виде (функции in и out): #include &lt;iostream&gt; #include...

Перегрузка операторов ввода вывода - C++
ребята болит уже голова)) main.cpp #include &quot;myStr.h&quot; int main() { myStr myS(&quot;ok&quot;); cout&lt;&lt;myS&lt;&lt;endl;//надо чтоб...

Перегрузка операторов ввода вывода - C++
в .h файле сделал объявление inline ostream&amp; operator &lt;&lt;(ostream&amp;, const Proc&amp;); inline istream&amp; operator &gt;&gt;(istream&amp;, Proc&amp;); в...

Перегрузка операторов ввода-вывода - C++
Доброго времени суток! Почему перестал работать &gt;&gt; оператор для стандартного типа char. Перегруженная операция cin&gt;&gt;one возвращает все...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spo1ler
292 / 52 / 3
Регистрация: 22.05.2008
Сообщений: 788
25.12.2008, 15:52     Почему не выполняется один из операторов ввода,помеченые * #2
Потому, что /* открывает мульти-строчный комментарий. RTFM.
ВиталийZ
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 12
26.12.2008, 11:39  [ТС]     Почему не выполняется один из операторов ввода,помеченые * #3
Не понял! Убираем оба комментария //*,а один из операторов ввода даже если использовать аналогичные операторы ввода всеравно не выполняется. Почему?
Приходится только дублировать операторы ввода.
Spo1ler
292 / 52 / 3
Регистрация: 22.05.2008
Сообщений: 788
26.12.2008, 12:10     Почему не выполняется один из операторов ввода,помеченые * #4
Иногда в буффере ввода могут остаться символы. И когда следующая ф-ция, которая "забирает" из потока символ выполняется, она даже не требует пользователя ввести что-то, а просто берет те символы, которые остались от предыдущего ввода.
ВиталийZ
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 12
28.12.2008, 22:07  [ТС]     Почему не выполняется один из операторов ввода,помеченые * #5
И как же поступить? Перед очередным вводом очистить буфер? Напомните как правильно записать очистку буфера.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,365
28.12.2008, 23:07     Почему не выполняется один из операторов ввода,помеченые * #6
Код
cin.flush();
ВиталийZ
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 12
31.12.2008, 11:27  [ТС]     Почему не выполняется один из операторов ввода,помеченые * #7
Такой команды cin.flush() нет(уменя пишет, что это не базовая команда istream), а cin.clear() не помогает.
Spo1ler
292 / 52 / 3
Регистрация: 22.05.2008
Сообщений: 788
01.01.2009, 16:07     Почему не выполняется один из операторов ввода,помеченые * #8
Сделай cin.get()
ВиталийZ
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 12
07.01.2009, 15:02  [ТС]     Почему не выполняется один из операторов ввода,помеченые * #9
Использование cin.get() не выход из положения. Как же всетаки правильно организовать ввод строки без пропуска операторов ввода даже если пользователь введет больше символов, чем это предусмотрено форматом ввода?

Уважаемые! Так кто-нибудь знает как правильно записать операторы ввода? Или точнее как удалить из буфера ввода лишние символы, чтобы они потом не мешали при последующем вводе. Повторю cin.clear() не помогает.
XaosLord
3 / 3 / 1
Регистрация: 18.03.2009
Сообщений: 20
07.04.2009, 14:05     Почему не выполняется один из операторов ввода,помеченые * #10
После считывания строки дописать:

C++
1
2
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n'); //сбрасываем весь хлам пока не кончится поток или не встретится символ перехода на новую строку.
подключить <limits>
Monte-Cristo
2788 / 1374 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.04.2009, 14:15     Почему не выполняется один из операторов ввода,помеченые * #11
cin.ignore(); у меня работает на 100%
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2009, 11:12     Почему не выполняется один из операторов ввода,помеченые *
Еще ссылки по теме:

Перегрузка операторов потокового ввода вывода - C++
Есть класс &quot;деканат&quot;, полем которого есть список студентов, объектов из класса &quot;Студент&quot;. Как переопределяя операторы &quot;&gt;&gt;&quot; &quot;&quot;&lt;&lt;&quot; вывести...

Перегрузка операторов ввода. Segmentation fault - C++
Не могу разобраться с ошибкой. Вроде написал все логично: #include &lt;iostream&gt; using namespace std; class Card { char...

Перегрузка операторов присваивания, ввода, вывода - C++
Приветствую, помогите реализовать перегрузку операторов(в частности операторы присваивания, ввода, вывода) для данной программы. Я не могу...

Цикл выполняется один раз - C++
Здравствуйте! Помогите, пожалуйста с задачей. Пусть а=а=1. а = а + а/2к-1 где к=2,3...Посчитать произведение а0*а1*…*а пока |ак|&lt;...


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

Или воспользуйтесь поиском по форуму:
ВиталийZ
0 / 0 / 0
Регистрация: 25.12.2008
Сообщений: 12
03.05.2009, 11:12  [ТС]     Почему не выполняется один из операторов ввода,помеченые * #12
Спасибо за профессиональную подсказку
Yandex
Объявления
03.05.2009, 11:12     Почему не выполняется один из операторов ввода,помеченые *
Ответ Создать тему
Опции темы

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