Проблема с Getline()

Тема в разделе "Общие вопросы по С и С++", создана пользователем Schummi, 20 фев 2008.

Статус темы:
Закрыта.
  1. Schummi

    Schummi Гость

    Использую VS6.0 SP6.
    Есть проблем с getline():

    код C++
    Код (Text):
    #include <iostream>
    #include <string>
    using namespace std;

    int main()
    {
    string s1,s2;

    cout<<"Input 1 string:";
    getline(cin,s1);
    cout<<"Output 1 string:"<<s1<<endl;

    cout<<"Input 2 string:";
    getline(cin,s2);
    cout<<"Outpit 2 string:"<<s2<<endl;

    return 0;
    }
    пример работы проги, ([Enter] - имеется в виду нажатие клавиши enter):

    Input 1 string:abcdef[Enter] - тут ввод s1 должен завершитсья(getline c двумя аргументами)
    123456[Enter] - однако ввод продолжается - и это явно ошибка компилятора
    Output 1 string:abcdef -вывели s1 и пока все верно
    Input 2 string:ABCDEF[Enter] -тут ввод s2 завершился, но примерно понятно почему - из-за второго [enter] при первом вводе
    Output 2 string:123456 -выводим s2, но это не ABCDEF как должно было быть, а "остатки" потока после ввода s1
    Press any key to continue

    лазил по сайту искал подобную тему, но ненашел...
    если кто знает дайте ссылки - проблема и так ясна, ну или пример кода как этого избежать

    в другом но менее мощном и удобном компиляторе
    все робит номально...[/size]
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Если я правильно вспоминаю, то реализация getline в VS6 оставляет '\n' в потоке. Потому и баг
     
  3. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
  4. Schummi

    Schummi Гость

  5. gamecreator

    gamecreator Гость

    а по-моему лучше использовать метод
     
  6. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Чем лучше? ИМХО?
     
  7. gamecreator

    gamecreator Гость

    ну я не наблюдал там таких багов
    (и там же написано "по-моему")
     
  8. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Это баг 11-летней давности. Это повод отказываться от более удобной в обращении функции?

    Тем более, что его можно исправить и без кромсания стандартных файлов
     
Загрузка...
Похожие Темы - Проблема Getline()
  1. AgniXRudra
    Ответов:
    2
    Просмотров:
    46
  2. Zloikaktus
    Ответов:
    0
    Просмотров:
    27
  3. c0de3r
    Ответов:
    5
    Просмотров:
    151
  4. DobermannTT
    Ответов:
    10
    Просмотров:
    157
  5. SoulPaladin
    Ответов:
    4
    Просмотров:
    143
Статус темы:
Закрыта.

Поделиться этой страницей