Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/98: Рейтинг темы: голосов - 98, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 6
1

Не работает getline(cin,s), istream.ignore()

15.12.2009, 23:13. Показов 20511. Ответов 13
Метки нет (Все метки)

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

При использовании cin.ignore(255,'\n') аналогичная ситуация

Также ifstream.ignore(255,<любой символ>)-вообще не работает.
Кто решал такую проблему, помогите чем могите.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2009, 23:13
Ответы с готовыми решениями:

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть...

Объясните работу методов cin.getline и cin.ignore
Фрагмент программы ниже. Что делают cin.getline и cin.ignore (12-13 строки) void...

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

Как работает cin.peek, cin,get, cin.ignore, cin.clear?
Здравствуйте, товарищи и не товарищи!:) Я только начал изучать C++, а уже использую вещи, которые...

13
2808 / 1399 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
15.12.2009, 23:38 2
Цитата Сообщение от Folcstret Посмотреть сообщение
string s;
getline(cin,s);//дважды приходиться жать ентер
в этой ситуации точно один... приведите весь код..
0
423 / 227 / 87
Регистрация: 25.03.2009
Сообщений: 744
15.12.2009, 23:49 3
Folcstret, а не уж то у вас в конце system("pause"); ??
0
║XLR8║
1210 / 912 / 270
Регистрация: 25.07.2009
Сообщений: 4,370
Записей в блоге: 5
16.12.2009, 02:18 4
по коду видно будет.. это ведь не секретная разработка))
0
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 6
16.12.2009, 09:47  [ТС] 5
Да хотя бы даже так:

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
using namespace std;
 
void main(){
    string s,t;
    getline(cin,s);
    cout<<s<<endl;
    getline(cin,t); 
    cout<<t<<endl;
}

Резльтат работы:

Код
1 2 3
4 5 6
1 2 3
7 8 9
4 5 6
Ввожу "1 2 3", жму ентер, курсор прыгает на следующую строку. Опять ввожу "4 5 6", жму ентер, прога выдаёт "1 2 3", курсор прыгает на следующую строку.Ввожу "7 8 9", жму ентер, прога выдаёт "4 5 6".
0
2808 / 1399 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
16.12.2009, 10:23 6
Цитата Сообщение от Folcstret Посмотреть сообщение
#include <iostream> #include <string> using namespace std; void main(){ string s,t; getline(cin,s); cout<<s<<endl; getline(cin,t); cout<<t<<endl; }
результат выполнения программы:
123
123
456
456
0
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 6
16.12.2009, 14:20  [ТС] 7
Monte-Cristo, а это в каком компиляторе??
0
║XLR8║
1210 / 912 / 270
Регистрация: 25.07.2009
Сообщений: 4,370
Записей в блоге: 5
16.12.2009, 18:52 8
у меня в вижуале getline не пахало для ввода с консоли, только с файлом пашет
0
Эксперт JavaЭксперт С++
8367 / 3589 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
16.12.2009, 19:17 9
C++
1
getline(std::cin, s, '\n');
0
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 6
16.12.2009, 19:56  [ТС] 10
M128K145, не работает, тот же результат
0
Эксперт JavaЭксперт С++
8367 / 3589 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
16.12.2009, 20:17 11
Folcstret, все работает. Может имеет смысл пересесть за что-нибудь более полезное чем шестая студия?
0
2808 / 1399 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
16.12.2009, 20:50 12
Цитата Сообщение от Folcstret Посмотреть сообщение
Monte-Cristo, а это в каком компиляторе??
в нормальном... в MinGW...
но это должно работать в любом... если не работает - ф топку компилятор..

работать не может только в одном случае, если ты до ввода еще осуществляешь манипуляции (могут остаться символы в потоке ввода.. тогда нужно поток почистить...)
0
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 6
16.12.2009, 21:46  [ТС] 13
В общем, просьба писать тех, кто знает, что-нибудь про эти глюки MS Visual C++ 6.0. Я где-то видел, что это ошибка в какой-то библиотеке.
0
0 / 0 / 0
Регистрация: 05.10.2019
Сообщений: 4
24.07.2020, 18:59 14
string s;
//_flushall(); - Если перед этой строкой был ввод текста с помощью команды "cin": то раскомментировать
getline(cin,s); //У меня это строка просто пропускается
getline(cin,s); //А тут совершается ввод текста
//Вообще я хз как это работает, но у меня это работает...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.07.2020, 18:59

cin.getline и cin.ignore
Есть кусок кода в котором не могу разобраться. Если cin.ignore() есть, то теряется первый вводимый...

Как работает Cin.ignore()
Дочитал до главы &quot;Потоки и файлы&quot; и с первого примера началось не понимание. Вот пример: ...

Не работает ни cin.Get(), ни cin.Getline()
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &quot;conio.h&quot; #include &quot;windows.h&quot; #include...

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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