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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 58, средняя оценка - 4.91
Folcstret
0 / 0 / 0
Регистрация: 28.11.2009
Сообщений: 6
15.12.2009, 23:13     Не работает getline(cin,s), istream.ignore() #1
Использую microsoft visual c++ 6.0.
не работает:
string s;
getline(cin,s);//дважды приходиться жать ентер

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

Также ifstream.ignore(255,<любой символ>)-вообще не работает.
Кто решал такую проблему, помогите чем могите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2009, 23:13     Не работает getline(cin,s), istream.ignore()
Посмотрите здесь:

C++ Друзья getline и cin.ignore
C++ cin.getline работает через раз
cin.getline и cin.ignore C++
C++ Как работает Cin.ignore()
C++ Не работает ни cin.Get(), ни cin.Getline()
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
15.12.2009, 23:38     Не работает getline(cin,s), istream.ignore() #2
Цитата Сообщение от Folcstret Посмотреть сообщение
string s;
getline(cin,s);//дважды приходиться жать ентер
в этой ситуации точно один... приведите весь код..
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 717
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
2805 / 1370 / 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
8272 / 3491 / 142
Регистрация: 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
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
16.12.2009, 20:17     Не работает getline(cin,s), istream.ignore() #11
Folcstret, все работает. Может имеет смысл пересесть за что-нибудь более полезное чем шестая студия?
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 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(buf, 20); C++
Не работает. cin.getline(string,200); C++
Cin.getline() не работает при динамическом выделении памяти C++

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

Или воспользуйтесь поиском по форуму:
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()
Ответ Создать тему
Опции темы

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