Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2015, 08:20   #1
ildar_94
Новичок
Джуниор
 
Регистрация: 01.10.2015
Сообщений: 2
По умолчанию Помогите с C++.

Доброго времени суток.Изучая программирование столкнулся с проблемой.
1)https://code-live.ru/post/cpp-classes/
2)https://code-live.ru/post/cpp-contin...rning-classes/
Изучая данную тему, набрал такой же код у себя, всё нормально работает,но решил добавить цикл do while.
Проблема в том, что после того как цикл сработал ввод данных в первую строку не попадает. т.е после выполнения программы после цикла ввод данных в name не происходит!

код:
Код:
/ main.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include "students.h"
#include <fstream>
#include "students.cpp"
#include <string>

int main(int argc, char *argv[])
{
	setlocale(0, "russian");

	std::string continie = "1";
	std::string stop = "0";
	std::string hold[2];

	std::string name;
	std::string last_name;
	//std::string a;
	do
	{
		std::cout << "Введите имя: ";
		getline(std::cin, name);
		std::cout << std::endl;


	std::cout << "Введите фамилию: ";
	getline(std::cin, last_name);

	// Передача параметров конструктору
	Students *student = new Students(name, last_name);

	// Оценки
	int  scores[5];
	// Сумма всех оценок
	int sum = 0;

	// Ввод промежуточных оценок 
	for (int i = 0; i < 5; ++i) {
		std::cout << "Введите оценки студента " << i + 1 << ": ";
		std::cin >> scores[i];
		// суммирование
		sum += scores[i];
	}
	// Сохраняем промежуточные оценки в объект класса Student
	student->set_scores(scores);

	// Считаем средний балл
	float average_ball = sum / 5.0;
	// Сохраняем средний балл
	student->set_average_ball(average_ball);
	// Выводим данные по студенту
	std::cout << "Средний бал ученика " << student->get_name() << " "
		<< student->get_last_name() << " состовляет:  "
		<< student->get_average_ball() << std::endl << std::endl;
	// Удаление объекта student из памяти
	delete student;
        //delete student;  
	std::cout << "Если вы закончили нажмите кнопку 0, если нет нажмите кнопку 1:  " ;
	//getline(std::cin, a);
		std::cin >> hold[1];
		std::cout << std::endl;
		//cout << endl;

	} while //(a > stop);
		(hold[1] > stop);
		
	return 0;
}
Заранее благодарен!

Последний раз редактировалось Stilet; 01.10.2015 в 08:35.
ildar_94 вне форума Ответить с цитированием
Старый 01.10.2015, 08:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Т.е. проскакивает getline(std::cin, name); вводя в name пустую строку?
Допиши в конец цикла std::cin.clear() попробуй.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2015, 14:02   #3
ildar_94
Новичок
Джуниор
 
Регистрация: 01.10.2015
Сообщений: 2
По умолчанию

Да точно не срабатывает getline(std::cin, name). пропробоал не помогло.
Еще почему то если в качестве hold использую переменные типа int.То компилятор выдает множество ошибок в файле student.cpp и main.cpp.
ildar_94 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод нужен срочно помогите ) в течение 2 часов от Паскаля на Турбо СИ нужно помогите Жанибек Помощь студентам 14 01.04.2015 17:23
Помогите создать програму для роботы с файлами, пожалуйста помогите нужно очень срочно Сергей Человек Фриланс 3 06.07.2009 19:30
Помогите Помогите Пожалуйста Решить Одну Задачку в Паскале!!! VisTBacK Помощь студентам 6 19.09.2008 13:44