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

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

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

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

25.01.2011, 16:15. Просмотров 362. Ответов 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 ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2011, 16:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос поиск в очень маленькой БД (C++):

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

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

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

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

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

Странная ошибка при компиляции очень очень большой проги ,,boomerang,, - C++
Я в общем, даже и не представляю, куда смотреть в поисках ошибки. Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ...

3
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
25.01.2011, 17:04 #2
нет ввода, потому что после ввода цифры объект cin оставляет во входном потоке символ \n
попробуйте так
C++
1
2
cin>>search;
cin.get();
1
Feodarron
0 / 0 / 0
Регистрация: 25.01.2011
Сообщений: 26
25.01.2011, 20:43  [ТС] #3
Только вот не могли бы объяснить что происходит когда пишем
Код
cin.get();
просто не люблю писать не зная того, что пишу)
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
25.01.2011, 21:07 #4
Feodarron, get ждёт ввода одного символа в поток, достаёт этот символ из потока и возвращает его. В данном случае мы просто ожидаем нажатия клавиши, поэтому сам символ нам не важен и он возвращается в никуда.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2011, 21:07
Привет! Вот еще темы с ответами:

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

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

очень очень странная ошибка - C++
вообщем стоит Windows 8.1 стоит visual studio 2008 возникла проблема: когда пытаюсь скомпилировать прогу - возникает 1 ошибка: ...

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


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
25.01.2011, 21:07
Ответ Создать тему
Опции темы

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