Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
topten2016
1 / 1 / 0
Регистрация: 08.03.2016
Сообщений: 7
#1

Не дожидается ввода строки - C++

25.03.2016, 08:45. Просмотров 653. Ответов 2
Метки нет (Все метки)

На определенном месте программа не дожидается ввода строки getline(std::cin, newstring); а заканчивает работу. В чем может быть причина.

source.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/* main.cpp */
#include <iostream>
#include "Students.h"
 
int main()
{
    // Создание объекта класса Student
    Students student2;
 
    std::string name;
    std::string last_name;
    std::string newstring;
    int time;
 
    // Ввод имени с клавиатуры
    std::cout << "Name: ";
    getline(std::cin, name);
 
    // Ввод фамилии
    std::cout << "Last name: ";
    getline(std::cin, last_name);
 
 
    
 
 
 
    // Сохранение имени и фамилии в объект класса Students
    student2.set_name(name);
    student2.set_last_name(last_name);
 
    // Оценки
    int scores[5];
    // Сумма всех оценок
    int sum = 0;
 
    // Ввод промежуточных оценок 
    for (int i = 0; i < 5; ++i) {
        std::cout << "Score " << i + 1 << ": ";
        std::cin >> scores[i];
        // суммирование
        sum += scores[i];
    }
 
    // Сохраняем промежуточные оценки в объект класса Student
    student2.set_scores(scores);
    // Считаем средний балл
    float average_ball = sum / 5.0;
    // Сохраняем средний балл в объект класса Students
    student2.set_average_ball(average_ball);
    // Выводим данные по студенту
    std::cout << "Average ball for " << student2.get_name() << " "
        << student2.get_last_name() << " is "
        << student2.get_average_ball();// << std::endl;
 
 
    std::cout << "New string";
    getline(std::cin, newstring);
    std::cout << newstring;
 
 
 
    system("pause");
 
    // return 0;
}



students.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* students.h */
#include <string>
 
class Students {
public:
    // Установка имени студента
    void set_name(std::string student_name)
    {
        name = student_name;
    }
    // Получение имени студента
    std::string get_name()
    {
        return name;
    }
    // Установка фамилии студента
    void set_last_name(std::string student_last_name)
    {
        last_name = student_last_name;
    }
    // Получение фамилии студента
    std::string get_last_name()
    {
        return last_name;
    }
    // Установка промежуточных оценок
    void set_scores(int student_scores[])
    {
        for (int i = 0; i < 5; ++i) {
            scores[i] = student_scores[i];
        }
    }
    // Установка среднего балла
    void set_average_ball(float ball)
    {
        average_ball = ball;
    }
    // Получение среднего балла
    float get_average_ball()
    {
        return average_ball;
    }
 
private:
    // Промежуточные оценки
    int scores[5];
    // Средний балл
    float average_ball;
    // Имя
    std::string name;
    // Фамилия
    std::string last_name;
};
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2016, 08:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не дожидается ввода строки (C++):

Работа функции cin.get(): не дожидается ввода символа в конце программы - C++
Доброго времени суток, столкнулся с таким странным поведением cin.get(), после окончания ввода списка (ответ n) вместо того, что бы в конце...

Время ввода строки - C++
Доброго времени суток! Возник вопрос, как узнать время ввода строки? Если есть возможность показать на примере буду очень благодарен! ...

Пропуск ввода строки - C++
Функция: cout &lt;&lt; &quot;Введите логин:&quot;; string Login; getline(cin, Login); cout &lt;&lt; &quot;Введите пароль:&quot;; string Password; ...

проблева ввода строки - C++
Пропускает ввод строки. Какого черта?) #include&lt;iostream&gt; using namespace std; void main() { int a; char str; ...

Длина строки до ввода ? - C++
#include &lt;iostream&gt; #include &lt;string&gt;//обеспечение доступа к классу string #include &lt;cstring&gt; using namespace std; int main(){ ...

Проверка правильности ввода строки - C++
Доброго дня! Имеется строка string str, задана изначально, пользователь вводит с клавиатуры другую строку string proverka, нужно проверить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
25.03.2016, 09:56 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Избитая ошибка
Оставление символа '\n' в потоке ввода
после std::cin >> scores[i];
0
topten2016
1 / 1 / 0
Регистрация: 08.03.2016
Сообщений: 7
25.03.2016, 11:09  [ТС] #3
Большое спасибо, Сергей Сергеевич. Ошибку исправил, все работает
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2016, 11:09
Привет! Вот еще темы с ответами:

Контроль длины ввода строки - C++
как сделать проверку, чтобы вводимое значение не выходило за пределы выделенной памяти? int main() { char *name = new char; ...

Выход в случае ввода пустой строки - C++
Опять 25 =( Порылся в своих старых темах, опять полистал учебник, но голова не хочет соображать. Где-то допускаю ошибку и прям чую, что...

Цикл и строки, очистка потока ввода - C++
Возникла проблема. При вводе &quot;Y&quot; цикл переходит сразу к следующему вооду, то есть пропускает &quot;cin.getline&quot;. Как исправить? #include...

Программа для ввода строки от блондинки - C++
Привет всем! Вот решила начать изучать язык программирования С++, но не все пока получается... Вот дали задание...написать программу,...


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

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

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