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

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

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

поиск в очень маленькой БД - C++

25.01.2011, 16:15. Просмотров 358. Ответов 3
Метки нет (Все метки)

Есть вот такая регистрационная форма, мне нужно по введенному имени найти всех зарегистрированных с таким же именем.
Код
#include<conio.h>
#include<string>
#include<iostream>
using namespace std;
	struct registration{
		string name;
		string surname;
		int age;
		string address;
		string email;
	};
Код
#include"stdafx.h"
#include"head_one.h"
void main(void)
{
setlocale(0,"");
registration r[10];
int n=10;
registration* r2=new registration[n];
int i=1,choice,search;
string namesearch;
cout<<"Введите данные для регистрации"<<endl;
cout<<"Введите имя"<<endl;
cin>>r[i].name;
cout<<"Введите фамилию"<<endl;
cin>>r[i].surname;
cout<<"Введите возраст"<<endl;
cin>>r[i].age;
cout<<"Введите адрес"<<endl;
cin>>r[i].address;
cout<<"Введите адрес электронной почты"<<endl;
cin>>r[i].email;
i++;
cout<<"Для повторной регистрации нажмите 1"<<endl;
cout<<"Для поиска по регистрационным данным нажмите 2"<<endl;
cout<<"Для выхода из программы нажмите 3"<<endl;
cin>>choice;
switch(choice)
{ case 1: { cout<<"Введите данные для регистрации"<<endl;
			cout<<"Введите имя"<<endl;
			cin>>r[i].name;
			cout<<"Введите фамилию"<<endl;
			cin>>r[i].surname;
			cout<<"Введите возраст"<<endl;
			cin>>r[i].age;
			cout<<"Введите адрес"<<endl;
			cin>>r[i].address;
			cout<<"Введите адрес электронной почты"<<endl;
			cin>>r[i].email;
			i++;
			
		  }
case 2:   { cout<<"Для поиска по имени введите 10"<<endl;
			cin>>search;
			switch(search)
			{case 10: { getline(cin,namesearch);
						int f;
						for(i=0;i<10;i++)
						{ f=(r[i].name).find(namesearch,0);
						  if( f!=-1)
						  	{ cout<<r[i].name<<endl;}
						}
						break;
					 }
			}
		  }
case 3:    { exit;}
}
}
в строке case 10: { getline(cin,namesearch); при выполнении программы нет этого ввода строки. на экран выдается первое имя, потом еще 9 пустых строк и конец программе. Как сделать нормальный поиск и чтобы была возможность вернуться к
Код
cout<<"Для повторной регистрации нажмите 1"<<endl;
cout<<"Для поиска по регистрационным данным нажмите 2"<<endl;
cout<<"Для выхода из программы нажмите 3"<<endl;
, а не завершение работы программы после выполнения одного из case ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2011, 16:15     поиск в очень маленькой БД
Посмотрите здесь:

Создание маленькой программы - C++
Добрый день! Подскажите как и с помощью чего сделать маленькую программу не требующую установки на компьютер. Программу из html...

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

Найти элемент массива со значением больше 10 с самой маленькой дробной частью - C++
Господа, товарищи, не могу разобраться с задачкой! Только перешел на одномерные массивы! Кто откликнется, прокомментируйте каждое...

Почему результат компиляции маленькой программы на с++ имеет довольно большой размер? - C++
Почему 20 строчек программа после компиляции exe файл занимает пол метра 512 кб?) так много

Найти все места, где часть большого изображения совпадает с маленькой - C++
У нас есть 2 изображения. Большое и маленькое(где-то 15 на 15). Хранятся в битмапе. Нужно найти все места, где часть большого изображения...

Я очень сильно запустил свой ПК,посоветуйте что нибудь т.к. очень сильно тормозит - C++
Сильно запустил свой ПК,при включении приходится ждать около часа чтобы не лагал так сильно,при переустановке Windows лагает также

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
25.01.2011, 17:04     поиск в очень маленькой БД #2
нет ввода, потому что после ввода цифры объект cin оставляет во входном потоке символ \n
попробуйте так
C++
1
2
cin>>search;
cin.get();
Feodarron
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 26
25.01.2011, 20:43  [ТС]     поиск в очень маленькой БД #3
Только вот не могли бы объяснить что происходит когда пишем
Код
cin.get();
просто не люблю писать не зная того, что пишу)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2011, 21:07     поиск в очень маленькой БД
Еще ссылки по теме:

Очень просто(x^3) - C++
А как записать Х в кубе?

Очень стыдно! - C++
Скажите пожалуйста, почему 2 % 4 = 2 - (остаток = 2)??? int n=0; n=2%4; cout &lt;&lt; n &lt;&lt; &quot;\n&quot;;

Очень нужно - C++
как сделать чтоб человек вводил текст на консоль а прога записывала это в файл?

очень нужно - C++
правильна ли запись? где ошибки? как правильно записать?? class m { public: float h;} class n: public m { public: double r, t; }; ...


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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
25.01.2011, 21:07     поиск в очень маленькой БД #4
Feodarron, get ждёт ввода одного символа в поток, достаёт этот символ из потока и возвращает его. В данном случае мы просто ожидаем нажатия клавиши, поэтому сам символ нам не важен и он возвращается в никуда.
Yandex
Объявления
25.01.2011, 21:07     поиск в очень маленькой БД
Ответ Создать тему
Опции темы

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