Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
 Аватар для NEWd
56 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 98

Повторный ввод строки

21.03.2018, 15:59. Показов 3851. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Мне нужно написать программу, которая циклически производит ввод строки. Я пытаюсь вводить через cin.get(). НО после первого ввода моя строка (сhar s[100]) заполняется введенными символами, а второго ввода не происходит, т.к. прога считает, что я уже все ввел и тупо использует данные, введенные в первый раз. Я так понимаю, что надо либо массив чистить (как-то указать на то, что он пуст) или пользоваться другой функцией. Помогите!)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.03.2018, 15:59
Ответы с готовыми решениями:

Повторный ввод данных
#include <iostream> using namespace std; int main() { setlocale(LC_ALL, "russian"); int sum, s, x1, x2; cout << "s...

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

Добавить повторный ввод
#include <stdio.h> #include <conio.h> #include <math.h> #include<iostream> #include <stdlib.h> #include <locale.h> int...

5
 Аватар для Hitoku
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
21.03.2018, 16:01
После ввода строки добавьте
C++
1
std::cin.ignore(std::cin.rdbuf()->in_avail());
для очистки буффера ввода
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
21.03.2018, 16:02
Цитата Сообщение от NEWd Посмотреть сообщение
циклически производит ввод строки.
Цикл у тебя есть? Код показывай.
0
 Аватар для NEWd
56 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 98
21.03.2018, 16:12  [ТС]
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
do
    {
        m = 0;
        cout << "Enter text\n";
        cin.get(quote, 100, '\n');
        k = strlen(quote);
        if (k < 100)
        {
            for (i = 0; i < k - 1; i++)
            {   
                if (quote[i] == quote[i + 1]) 
                {
                    m++;
                    for (int j = i; j < k - i - 1; j++)
                        quote[j] = quote[j + 1];
 
                    k--;
                }
            }
 
            for (i = 0; i < k; i++)
            {
                cout.put(quote[i]);
            }
        }
        else 
            cout << "вы ввели неправильные данные, введите заново\n";
        cout <<endl  <<m ;
        cout << "\n Press y to repeat";
                cin.ignore(cin.rdbuf() -> in_avail());
        cin.clear();
        cin >> z;
    }                      
    while (z == 'y');
Добавлено через 1 минуту
cin.ignore тут ни при чем по идее, потому что я ввожу еще и z и она норм вводится..
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
21.03.2018, 17:04
Лучший ответ Сообщение было отмечено NEWd как решение

Решение

И что? С cin.ignore() не работает?
Цитата Сообщение от NEWd Посмотреть сообщение
потому что я ввожу еще и z и она норм вводится..
Тут другой оператор работает (>> ), он '\n', оставшийся в потоке после cin.get(), пропускает.
Вот так исправь:
C++
1
(cin >> z).get();
Добавлено через 5 минут
Лучше бы cin.getline() использовал, он '\n' в потоке не оставляет (но перед ним тоже нужно убирать '\n', после cin >>).
1
 Аватар для NEWd
56 / 2 / 0
Регистрация: 19.10.2015
Сообщений: 98
21.03.2018, 17:29  [ТС]
Спасибо, все ок!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.03.2018, 17:29
Помогаю со студенческими работами здесь

Не получается повторный ввод числа
Дано некое задание на вывод массива чисел. В случае неправильности ввода размера массива (более 20-ти чисел), программа должна выводить...

Конструктор. Повторный ввод в строку
При создании второго объекта, не запрашивает повторный ввод в строку типа char. Как исправить? class exampleGar { private: int...

Проверка на повторный ввод элемента массива
Вот код во время проверки на повторный ввод элемента массива получается бессконечный цыкл и еще одна проблема при проверке на ввод чисел...

Повторный ввод данных после ошибки
как после слов &quot;ошибка!!!...&quot; вернуться для повторного ввода оценки ученику?#include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Повторный ввод без завершения программы
консольное приложение. как сделать так, чтобы при вводе неверных данных в переменную (cin &gt;&gt; a), заново запрашивать ввод данных? ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru