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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 58, средняя оценка - 4.91
Folcstret
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 6
#1

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

15.12.2009, 23:13. Просмотров 7488. Ответов 12
Метки нет (Все метки)

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

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

Также ifstream.ignore(255,<любой символ>)-вообще не работает.
Кто решал такую проблему, помогите чем могите.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
15.12.2009, 23:38     Не работает getline(cin,s), istream.ignore() #2
Цитата Сообщение от Folcstret Посмотреть сообщение
string s;
getline(cin,s);//дважды приходиться жать ентер
в этой ситуации точно один... приведите весь код..
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
15.12.2009, 23:49     Не работает getline(cin,s), istream.ignore() #3
Folcstret, а не уж то у вас в конце system("pause"); ??
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
16.12.2009, 02:18     Не работает getline(cin,s), istream.ignore() #4
по коду видно будет.. это ведь не секретная разработка))
Folcstret
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 6
16.12.2009, 09:47  [ТС]     Не работает getline(cin,s), istream.ignore() #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".
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
16.12.2009, 10:23     Не работает getline(cin,s), istream.ignore() #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
Folcstret
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 6
16.12.2009, 14:20  [ТС]     Не работает getline(cin,s), istream.ignore() #7
Monte-Cristo, а это в каком компиляторе??
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
16.12.2009, 18:52     Не работает getline(cin,s), istream.ignore() #8
у меня в вижуале getline не пахало для ввода с консоли, только с файлом пашет
M128K145
Эксперт C++
 Аватар для M128K145
8277 / 3496 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
16.12.2009, 19:17     Не работает getline(cin,s), istream.ignore() #9
C++
1
getline(std::cin, s, '\n');
Folcstret
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 6
16.12.2009, 19:56  [ТС]     Не работает getline(cin,s), istream.ignore() #10
M128K145, не работает, тот же результат
M128K145
Эксперт C++
 Аватар для M128K145
8277 / 3496 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
16.12.2009, 20:17     Не работает getline(cin,s), istream.ignore() #11
Folcstret, все работает. Может имеет смысл пересесть за что-нибудь более полезное чем шестая студия?
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
16.12.2009, 20:50     Не работает getline(cin,s), istream.ignore() #12
Цитата Сообщение от Folcstret Посмотреть сообщение
Monte-Cristo, а это в каком компиляторе??
в нормальном... в MinGW...
но это должно работать в любом... если не работает - ф топку компилятор..

работать не может только в одном случае, если ты до ввода еще осуществляешь манипуляции (могут остаться символы в потоке ввода.. тогда нужно поток почистить...)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2009, 21:46     Не работает getline(cin,s), istream.ignore()
Еще ссылки по теме:

Не работает. cin.getline(string,200); C++
Cin.getline() не работает при динамическом выделении памяти C++
Cin.clear cin.ignore C++
C++ Как работает cin.ignore(), именно в том случае, когда он написан без параметров?
C++ Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода

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

Или воспользуйтесь поиском по форуму:
Folcstret
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 6
16.12.2009, 21:46  [ТС]     Не работает getline(cin,s), istream.ignore() #13
В общем, просьба писать тех, кто знает, что-нибудь про эти глюки MS Visual C++ 6.0. Я где-то видел, что это ошибка в какой-то библиотеке.
Yandex
Объявления
16.12.2009, 21:46     Не работает getline(cin,s), istream.ignore()
Ответ Создать тему
Опции темы

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