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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 226
#1

Что делает метод cin.ignore? - C++

19.06.2014, 02:03. Просмотров 2206. Ответов 7
Метки нет (Все метки)

C++
1
cin.ignore(0,'\n');
Что она делает?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2014, 02:03     Что делает метод cin.ignore?
Посмотрите здесь:

Что делает cin.ignore(); - C++
Поясните мне, какое действие выполняет функция: cin.ignore(); Лучше на примере каком нибудь!(с комментариями) Может быть это что-то...

Что делает cin.get - C++
Вот код: #include <iostream> int main() { int a; std::cin >> a; std::cin.putback ('A'); ...

cin.ignore - C++
Как работает эта функция? cin.ignore (1, '#');

Избавиться от cin.ignore() - C++
Приветствую всех! Написал простенькую программку для работы с классами. #include "stdafx.h" #include <iostream> using std::cout;...

Друзья getline и cin.ignore - C++
Постараюсь как можно более точно обрисовать проблему. Имеется string * v1 = new string; string * v2 = new string; string * v3 = new...

Как работает Cin.ignore() - C++
Дочитал до главы "Потоки и файлы" и с первого примера началось не понимание. Вот пример: #include <iostream> using namespace...

Не работает getline(cin,s), istream.ignore() - C++
Использую microsoft visual c++ 6.0. не работает: string s; getline(cin,s);//дважды приходиться жать ентер При использовании...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
19.06.2014, 02:05     Что делает метод cin.ignore? #2
пропускает n количество символов. в данном случае 0
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 226
19.06.2014, 02:06  [ТС]     Что делает метод cin.ignore? #3
Цитата Сообщение от Esecman Посмотреть сообщение
пропускает n количество символов. в данном случае 0
Тогда в чем смысл данной операции ?
Esecman
38 / 26 / 6
Регистрация: 31.12.2013
Сообщений: 329
19.06.2014, 02:08     Что делает метод cin.ignore? #4
Maximum number of characters to extract (and ignore).

К примеру,
C++
1
cin.ignore(100, "\n");
Значит, он дает пользователю ввести 100 символов в консоли, и на 101 завершает работу функции ignore.
почти похож на
C++
1
cin.get();
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 226
19.06.2014, 02:09  [ТС]     Что делает метод cin.ignore? #5
Цитата Сообщение от Esecman Посмотреть сообщение
К примеру, cin.ignore(100, "\n");
Значит, он дает пользователю ввести 100 символов в консоли, и на 101 завершает работу(cin.ignore()
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
int main()
{
    int osnovanie;
    cout << "Введите основание: " << endl;
        cin >> osnovanie;
    cin.ignore(0,'\n');
    cin.get();
    char bvector1[100]; char bvector2[100]; unsigned char rezult[100];
    cout << "Введите первое число: " << endl;
        cin.getline(bvector1, sizeof(bvector1));
    cout << "Введите второе число: " << endl;
    cin.getline(bvector2, sizeof(bvector2));
    int L1 = strlen(bvector1);
    int L2 = strlen(bvector2);
    for (int i = 0; i < L1 + L2; i++) rezult[i] = 0;
    for (int i = L2 - 1; i >= 0; i--)
    {
        for (int j = L1 - 1; j >= 0; j--)
        {
            rezult[j + i + 1] += ((bvector1[j] >= 'A' && bvector1[j] <= 'F') ? 10 +  bvector1[j]-'A' : (bvector1[j] - '0')) * ((bvector2[i] >= 'A' && bvector2[i] <= 'F') ? 10 +  bvector2[i]-'A' : (bvector2[i] - '0'));
            if (rezult[j + i + 1] > osnovanie - 1) {
                rezult[i + j] += rezult[j + i + 1] / osnovanie;
                rezult[j + i + 1] %= osnovanie;
            }
        }
        if (rezult[L1 + i ] > 9)
            rezult[L1 + i ] = 'A' + rezult[L1 + i ] - 10;
        else rezult[L1 + i ] += '0';
    }
    rezult[L1 + L2] = '\0';
    for (int i = 0; i < L1 ; i++)
    {
        if (rezult[i] > 9)
            rezult[i] = 'A' + rezult[i] - 10;
        else rezult[i] += '0';
    }
    cout << rezult;
    return 0;
}
Зачем он нужен тут? Если его убрать то перестает нормально работать, но какую роль он в этой функции играет, не пойму
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.06.2014, 02:37     Что делает метод cin.ignore? #6
Цитата Сообщение от Esecman Посмотреть сообщение
К примеру, Код C++1
cin.ignore(100, "\n");
Пример неверный. Тип второго параметра должен быть не const char*, а int.

Добавлено через 4 минуты
Цитата Сообщение от niikiita Посмотреть сообщение
Если его убрать то перестает нормально работать
Если вот это убрать?
C++
1
cin.ignore(0,'\n');
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 226
19.06.2014, 07:07  [ТС]     Что делает метод cin.ignore? #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Если вот это убрать?
Да, второе число не дает ввести
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2014, 08:18     Что делает метод cin.ignore?
Еще ссылки по теме:

Зачем нужна функция cin.ignore()? - C++
Объясните пожалуйста почему если убрать из кода cin.ignore(); , в 55 строке присваиваем n = 1, оно возвращает к началу, и getline(cin,...

Исправить код, вызывающий cin.ignore(numeric_limits<streamsize>::max()) - C++
Возможно многие знают что если использовать библиотеку windows.h, и функцию cin.ignore(numeric_limits&lt;streamsize&gt;::max(), '\n'); выдаётся...

Как работает cin.ignore(), именно в том случае, когда он написан без параметров? - C++
Объясните, пожалуйста, как работает cin.ignore(), именно в том случае, когда написан без параметров заранее спасибо!

Что делает цикл "while(cin.getline(buf,l_buf))" ? - C++
не могу понять,что делает цикл:while(cin.getline(buf,l_buf))-это по сути проверка на ввод строки? cin.getline()-вводит строку ...

Не компилирует max в cin.ignore(numeric_limits<streamsize>::max(),'\n') - C++
Компилятор MSVS 2010, проблема с max, как мне это устранить? использовала define, но либо я не там ставила (и библиотеки тоже),...


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

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
19.06.2014, 08:18     Что делает метод cin.ignore? #8
Если убрать cin.ignore(0,'\n');
то ничего не изменится,
а вот если убрать cin.get();
то во входном потоке останется символ "конец строки" ('\n'),
который прочитается как целая строка командой
cin.getline(bvector1, sizeof(bvector1));

Можно оставить что-нибудь типа cin.ignore(999,'\n');
и убрать cin.get();
Тогда при вводе после цифр числа можно печатать любую ересь длиной до 999 символов, и она будет пропущена
Yandex
Объявления
19.06.2014, 08:18     Что делает метод cin.ignore?
Ответ Создать тему
Опции темы

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