Из-за чего 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");
}
Спасибо
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>}
Спасибо
Здравствуйте, Аноним, Вы писали:
А>getline работает правильно он действительно читает строку. Только если Вы вводите число и enter, то строка получается пустой, т.к. число уже прочитано.
А>Распечатка поможет понять что к чему:
А>А>[max@dag:~...ther/C++/cin]$ ./cin
А>123 dfgdfg
А>dd
А>i: 123
А>str1: dfgdfg
А>str2: dd
А>[max@dag:~...ther/C++/cin]$
А>
Спасибо, дошло