Работа cin и cin.getline
От: AZ.MORF Россия  
Дата: 25.03.08 09:20
Оценка:
Из-за чего cin.getline неправильно работает после вызова cin?
В нижеприведенном примере первый вызов функции cin.getline не обрабатывается.. А второй работает. Если убрать строчку с cin, то оба cin.getline работают
#include <iostream>
#include <string.h>
using namespace std;

void main()
{
    int i;
    char str1[200], str2[200];
    cin >> i;
    cin.getline(str1, 199);
    cin.getline(str2, 199);
    system("pause");
}
Спасибо
Re: Работа cin и cin.getline
От: Аноним  
Дата: 25.03.08 09:32
Оценка:
getline работает правильно он действительно читает строку. Только если Вы вводите число и enter, то строка получается пустой, т.к. число уже прочитано.
Распечатка поможет понять что к чему:
[max@dag:~...ther/C++/cin]$ ./cin
123 dfgdfg
dd
i:    123
str1:  dfgdfg
str2: dd
[max@dag:~...ther/C++/cin]$


Здравствуйте, AZ.MORF, Вы писали:

AM>Из-за чего cin.getline неправильно работает после вызова cin?

AM>В нижеприведенном примере первый вызов функции cin.getline не обрабатывается.. А второй работает. Если убрать строчку с cin, то оба cin.getline работают
#include <iostream>
AM>#include <string.h>
AM>using namespace std;

AM>void main()
AM>{
AM>    int i;
AM>    char str1[200], str2[200];
AM>    cin >> i;
AM>    cin.getline(str1, 199);
AM>    cin.getline(str2, 199);
AM>    system("pause");
AM>}
Спасибо
Re[2]: Работа cin и cin.getline
От: AZ.MORF Россия  
Дата: 25.03.08 12:16
Оценка:
Здравствуйте, Аноним, Вы писали:

А>getline работает правильно он действительно читает строку. Только если Вы вводите число и enter, то строка получается пустой, т.к. число уже прочитано.

А>Распечатка поможет понять что к чему:
А>
А>[max@dag:~...ther/C++/cin]$ ./cin
А>123 dfgdfg
А>dd
А>i:    123
А>str1:  dfgdfg
А>str2: dd
А>[max@dag:~...ther/C++/cin]$           
А>


Спасибо, дошло
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.