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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2013, 23:02   #1
marina12
Пользователь
 
Регистрация: 13.02.2013
Сообщений: 28
По умолчанию записная книга

Здравствуйте!
Пишу программу - записную книгу,
Столкнулась с такой проблемой,что при добавлении нового элемента в книгу, ввод некоторых параметров пропускает и сразу переходит же к другому параметру,ниже прикреплю скриншот.
Проблема вроде бы исчезает,когда я после каждого fgets прописываю cin.ignore().
Подскажите пожалуйста в чем моя ошибка?
В коде представлены только структуры,перечисления и сама функция добавления:
Код:
#include "stdafx.h"
#include <iostream>
#include "conio.h"
#include "stdlib.h"
using namespace std;
struct PROG
{
	char name [255];
	char lastname [255];
	int age;
	enum Department;
	char Department [50];
	char Project [255];
	char CPU [127];
	int Memory;
	char Customer [255];
	int ProgrammersNum;
	char Addres [255];
	int Weight;
	char Transport [20];
	enum Transport;
};
struct Value
{
	PROG prog;
	Value *next;
};
enum Department
{
	DEPT_PROGRAMMERS=1,
	DEPT_MANAGEMENT=2,
	DEPT_SHIPPING=3
};
enum Transport
{
	TRANSP_TRAIN,
	TRANSP_AUTO,
	TRANSP_AERO,
	TRANSP_SHIP
};
Value *first = NULL; //Указатель на первый элемент списка
void Menu ()
{
	printf("'1' - Add\n");
	printf("'2' - Delete\n");
	printf("'3' - Save\n");
	printf("'4' - Load\n");
	printf("'5' - View\n");
}
void Add ()
{
	Value *v;
	int j;
	int q;
	system("cls");
	printf("How many elements do you want to add?\n");
	scanf("%d",&j);
	cin.ignore();
	system ("cls");
	for(int i=0;i<j;i++)
	{
	v = new(Value); // новый элемент списка, выделяем память
	printf("Enter the name: ");
	gets(v->prog.name);
	printf("Enter the lastname: ");
	gets(v->prog.lastname);
	printf("Enter the age: ");
	scanf("%d",&v->prog.age);
	printf("Choose the department:\n '1'-programmers;\n '2'-managment;\n '3'-shipping\n");
	scanf("%d",&q);
	if (q==DEPT_PROGRAMMERS)
	{
		printf("programmers\n",&v->prog.Department);
		printf("Enter the project: ");
		gets(v->prog.Project);
		printf("Enter the CPU: ");
		gets(v->prog.CPU);
		printf("Enter the Memory: ");
		scanf("%d",&v->prog.Memory);
	
	}
	if (q==DEPT_MANAGEMENT)
	{
		printf("managment\n",&v->prog.Department);
		printf("Enter the project: ");
		gets(v->prog.Project);
		printf("Enter the customers: ");
		gets(v->prog.Customer);
		printf("Enter the numbers of programmers: ");
		scanf("%d",&v->prog.ProgrammersNum);
		system ("cls");
		Menu();
	}
	if (q==DEPT_SHIPPING)
	{
		int q1;
		printf("shiping\n",&v->prog.Department);
		printf("Enter the address: ");
		gets(v->prog.Addres);
		printf("Enter the customers: ");
		gets(v->prog.Customer);
		printf("Enter the weight: ");
		scanf("%d",&v->prog.Weight);
		printf("Enter the transport:\n '1' - train;\n '2' - auto;\n '3' - aero;\n '4' - ship");
		scanf("%d",&q);
		cin.ignore(20,'\n');
		if (q1=TRANSP_TRAIN)
		{
			printf("train",&v->prog.Transport);
		}
		if (q1=TRANSP_AUTO)
		{
			printf("auto",&v->prog.Transport);
		}
		if (q1=TRANSP_AERO)
		{
			printf("aero",&v->prog.Transport);
		}
		if (q1=TRANSP_SHIP)
		{
			printf("ship",&v->prog.Transport);
		}
	}
	system("cls");
	}
	system("cls");
	Menu();
}
http://saveimg.ru/show-image.php?id=...d2e6ca3e7e295f
marina12 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# - записная книжка. Kil001 C# (си шарп) 0 22.11.2012 23:36
Записная книга LuBuMaster Общие вопросы C/C++ 0 11.11.2010 13:44
Записная книжка Sina БД в Delphi 6 06.04.2010 15:53
Записная книжка Babur4iK Помощь студентам 4 06.03.2010 16:46
Записная книжка Черничный Софт 9 15.07.2008 04:44