Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
TheLimboUser
1 / 1 / 0
Регистрация: 17.08.2016
Сообщений: 37
1

Cin + cin.getline()

23.10.2016, 17:51. Просмотров 838. Ответов 4
Метки нет (Все метки)

Почему, если после считывание с помощью cin считать строку с помощью cin.getline(), строка считывается только в той же строке где мы считываем что то при помощи cin? (без тавтологии здесь никак) На пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
#include<string.h>
 
using namespace std;
 
int n;
char str[255];
 
void main()
{
    cin >> n;
    cin.getline(str, n); 
    cout << str << endl;
    system("pause");
}
Если мы при считывании n вводим "5" и нажимаем ENTER то сразу строке str присваивается - "", то есть - пустая строка и выведится ""
Мне нужно ввести n в первой строке, а str - во второй, как это реализовать?
P.S. Я сейчас перехожу с stdio.h на iostream. Но вообще я сейчас немного на вишем уровне. Без понятие, зачем Вам это знать, но всё же...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2016, 17:51
Ответы с готовыми решениями:

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть...

Продемонстрировать различие между вводом с помощью cin.Get и cin.Getline с тремя параметрами
Нужна помощь. Задача продемонстрировать различие между вводом с помощью cin.get и cin.getline с...

Объясните работу методов cin.getline и cin.ignore
Фрагмент программы ниже. Что делают cin.getline и cin.ignore (12-13 строки) void...

Отличие функции cin.get и cin.getline
Добрый день! Изучаю функции get и getline, сказано, что они отличаются тем, что функция get...

4
zss
Модератор
Эксперт С++
9271 / 8005 / 4914
Регистрация: 18.12.2011
Сообщений: 21,346
Завершенные тесты: 1
23.10.2016, 17:56 2
Лучший ответ Сообщение было отмечено TheLimboUser как решение

Решение

Распространенные ошибки
1
worldown
184 / 172 / 111
Регистрация: 22.06.2009
Сообщений: 533
23.10.2016, 18:02 3
Лучший ответ Сообщение было отмечено TheLimboUser как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<string.h>
 
using namespace std;
 
 
 
int main()
{
    int n;
    char str[255];
    cin >> n;
    cin.get();
    cin.getline(str, n);
    cout << str << endl;
    system("pause");
    return 0;
}
1
TheLimboUser
1 / 1 / 0
Регистрация: 17.08.2016
Сообщений: 37
23.10.2016, 18:11  [ТС] 4
zss, worldown, огромное спасибо.
Только не могли бы Вы объяснить конструкцию
C++
1
 (cin >> n).get();
Просто я ещё не начинал учить ООП.
0
nmcf
6583 / 5792 / 2637
Регистрация: 14.04.2014
Сообщений: 24,655
23.10.2016, 18:21 5
Операция >> возвращает ссылку на поток, поэтому можно так совместить
C++
1
2
cin >> n;
cin.get();
1
23.10.2016, 18:21
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2016, 18:21

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как работает cin.peek, cin,get, cin.ignore, cin.clear?
Здравствуйте, товарищи и не товарищи!:) Я только начал изучать C++, а уже использую вещи, которые...

cin.getline и cin.ignore
Есть кусок кода в котором не могу разобраться. Если cin.ignore() есть, то теряется первый вводимый...

Не работает ни cin.Get(), ни cin.Getline()
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &quot;conio.h&quot; #include &quot;windows.h&quot; #include...

getline(cin, str) и cin>>
Добрый день. Есть код: ... string str; int N; cin&gt;&gt; N; getline(cin, str); cout&lt;&lt;str&lt;&lt;endl;...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.