С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
#1

Cin.getline() не работает при динамическом выделении памяти - C++

10.07.2015, 22:24. Просмотров 477. Ответов 3
Метки нет (Все метки)

Почему в таком коде cin.getline() работает не так как надо? Если очистить поток, то будет все нормально.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main()
{
    
    int N;
    cin >> N;
 
    char *a = new char[N];
 
    cin.getline(a, N);
 
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2015, 22:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Cin.getline() не работает при динамическом выделении памяти (C++):

Ошибка при динамическом выделении памяти - C++
Я не понимаю почему, но почему-то пример по динамическому выделению памяти, взятый с этой веб-страницы: http://cppstudio.com/post/9555/...

Ошибка при динамическом выделении памяти - C++
почему у меня возникет ошибка вот тут struct TOVAR *New = new struct TOVAR; пишит недопустимый неполный тип на struct подчеркивает...

Создание исключения при динамическом выделении памяти - C++
Вот код из учебника в нем мне все понятно. #include&lt;iostream&gt; #include&lt;cstdlib&gt; //exit() #include&lt;new&gt; using std::cout;using...

Выравнивание при динамическом выделении памяти под массив - C++
Добрый вечер. Для того, чтобы выделить память под массив динамически и выровнять указатель по 16 байтам, в разных ОС существуют разные...

Использование конструктора базового класса при динамическом выделении памяти - C++
Есть базовый класс, от него наследуются несколько классов, свой конструктор я определил в базовом классе. Далее нужно сделать так:parent...

При множественном наследовании не работает getline(std::cin, ?) - C++
Изучаю множественное наследование, так вот, нужно ввести два слова, но программа просто пропускает getline (std::cin, ?) Когда так при...

3
Ev[G]eN
iOS/Android Developer
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
10.07.2015, 23:05 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
proont, потому что в нем сидит символ обрыва строки после ввода числа N, если я правильно понял вопрос
1
proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
10.07.2015, 23:13  [ТС] #3
Ev[G]eN, а почему он там сидит?
Посмотрите еще этот пост по этому вопросу Будет ли добавлен символ новой строки при ошибочном вводе?
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
10.07.2015, 23:18 #4
Цитата Сообщение от proont Посмотреть сообщение
а почему он там сидит?
а кто его знает почему он там сидит, нравится ему там, видимо...Вы же когда число ввели нажимаете Enter? ну вот вам и пожалуйста, вам число поток отдает, а все остальное остается в нем
1
10.07.2015, 23:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2015, 23:18
Привет! Вот еще темы с ответами:

Ошибка на динамическом выделении памяти - C++
программа ниже безупречно выполнялась под С++Builder 6.0 (консольное приложение). При переводе ее в VC6.0 (кроме сделанных исправлений -...

Немного о динамическом выделении памяти ... - C++
объявление данных в классе: class Employee {.......... private: char *firstName; char *lasrName; }

Вопрос о динамическом выделении памяти - C++
Доброго времени суток всем. у меня вопрос к работе следующего кода: delete values; // Удаляем массив из кучи ...

Не работает cin.getline при считывании строки большей буфера - C++
Доброго всем времени суток!:) Проблема состоит в том, что если ввести 4 и более символов cin.getline(boofer, 3); перестаёт работать. Как я...


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

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

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