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

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

Восстановить пароль Регистрация
 
topten2016
1 / 1 / 0
Регистрация: 08.03.2016
Сообщений: 7
25.03.2016, 08:45     Не дожидается ввода строки #1
На определенном месте программа не дожидается ввода строки 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;
};
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2016, 08:45     Не дожидается ввода строки
Посмотрите здесь:

C++ Проверка правильности ввода строки
проблева ввода строки C++
C++ Написать программу ввода и вывода строки на C++
Длина строки до ввода ? C++
C++ Время ввода строки
Контроль длины ввода строки C++
Пропуск ввода строки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
25.03.2016, 09:56     Не дожидается ввода строки #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Избитая ошибка
Оставление символа '\n' в потоке ввода
после std::cin >> scores[i];
topten2016
1 / 1 / 0
Регистрация: 08.03.2016
Сообщений: 7
25.03.2016, 11:09  [ТС]     Не дожидается ввода строки #3
Большое спасибо, Сергей Сергеевич. Ошибку исправил, все работает
Yandex
Объявления
25.03.2016, 11:09     Не дожидается ввода строки
Ответ Создать тему
Опции темы

Текущее время: 03:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru