1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

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

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

    Schummi Гость

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

    код C++
    Код:
    #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

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

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

    Schummi Гость

    Репутация:
    0
  5. gamecreator

    gamecreator Гость

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

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

    gamecreator Гость

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

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

    Тем более, что его можно исправить и без кромсания стандартных файлов
     
Загрузка...
Статус темы:
Закрыта.

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