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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2009, 22:17   #51
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Alik-Soldier
в Смысле запись в конец массива?Какую запись?На добавление?
В функции Dobavit заносите новые данные в c-й элемент массива и увеличивайте c.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.05.2009, 23:06   #52
Alik-Soldier
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 38
По умолчанию

Код:
void Telephon::Dobavit()		
{
	for(int i=c; i<(c+1); i++)
	{
	cout<<"Enter telephon subscriber surname, name and second name"<<endl;
	cin.getline(mas[i].fio.surname,sizeof(mas[i].fio.surname),32);				
    cin.getline(mas[i].fio.name,sizeof(mas[i].fio.name),32);
    cin.getline(mas[i].fio.second_name,sizeof(mas[i].fio.second_name));
	cout<<"Enter telephon subscriber adress:"<<endl;
    cin.getline(mas[i].adress,sizeof(mas[i].adress));
	cout<<"Enter year of telephon installation"<<endl;	  
    cin>>mas[i].year;
	cout<<"Enter telephon number:"<<endl;	
    cin>>mas[i].number;
	}
	c++;
}
вот так???
Протестил...вроде так работает...Но 1 проблема: в файл добавленный элемент добавляется через 2 строчки,например вот так:

"Петров Сергей Викторович
Профсоюзов 2-112
2001
661487

Иванов Иван Иванович
Тульская 6-45
2006
661247


Тарасов В В
ВВ
212
32323"

Первые 2 человека были,а 3-го я добавил...

Последний раз редактировалось Alik-Soldier; 29.05.2009 в 23:09.
Alik-Soldier вне форума Ответить с цитированием
Старый 29.05.2009, 23:25   #53
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
for(int i=c; i<(c+1); i++)
Зачем вам цикл? Никаких циклов!
К элементу обращайтесь так:
Код:
mas[c]
ну и в конце увеличиваете c.

Вот так сделайте:
Код:
void Telephon::Dobavit()
{
 char buf[150],*p;
	cout<<"Enter telephon subscriber surname, name and second name"<<endl;
	_flushall();
 cin.getline(buf,150,'\n');
	p = strtok(buf," \n");
	strcpy(mas[c].fio.surname,p);
	p = strtok(buf," \n");
	strcpy(mas[c].fio.name,p);
	p = strtok(buf," \n\0");
	strcpy(mas[c].fio.second_name,p);

	cout<<"Enter telephon subscriber adress:"<<endl;
    cin.getline(mas[c].adress,sizeof(mas[c].adress),'\n');
	cout<<"Enter year of telephon installation"<<endl;
    cin>>mas[c].year;
	cout<<"Enter telephon number:"<<endl;
    cin>>mas[c].number;
	c++;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.05.2009, 23:32   #54
Alik-Soldier
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 38
По умолчанию

_flushall() вот эта функция очищает буфер как я понимаю,да?
Alik-Soldier вне форума Ответить с цитированием
Старый 29.05.2009, 23:36   #55
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Alik-Soldier
_flushall() вот эта функция очищает буфер как я понимаю,да?
Все буферы. Иначе там после ввода пункта меню остается символ перевода строки, который портит ввод.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.05.2009, 23:37   #56
Alik-Soldier
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 38
По умолчанию

Спасибо огромное...Только в строчках перед strcmp для фамилии и имени надо в p пробел ставить,вот так:
Код:
p = strtok(buf," ");
	strcpy(mas[c].fio.surname,p);
	p = strtok(buf," ");
	strcpy(mas[c].fio.name,p);
	p = strtok(buf," \n\0");
	strcpy(mas[c].fio.second_name,p);
Цитата:
Все буферы. Иначе там после ввода пункта меню остается символ перевода строки, который портит ввод.
Спасибо за пояснение)))
Alik-Soldier вне форума Ответить с цитированием
Старый 29.05.2009, 23:40   #57
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Alik-Soldier
Только в строчках перед strcmp для фамилии и имени надо в p пробел ставить,вот так:
А там и стоит пробел. Слева от '\n'.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.05.2009, 23:46   #58
Alik-Soldier
Пользователь
 
Регистрация: 01.05.2009
Сообщений: 38
По умолчанию

аааа)))ну я убрал его и у миня 3 раза выводил в одну строчку buf...
Alik-Soldier вне форума Ответить с цитированием
Старый 18.01.2011, 16:32   #59
iron_cross
Пользователь
 
Аватар для iron_cross
 
Регистрация: 23.11.2010
Сообщений: 29
По умолчанию

Если остался исходник готовоого кода, скиньте мне на почту или прикрепите к теме. Заране спасибо.
iron_cross вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы в С++ S2S Общие вопросы C/C++ 0 15.03.2009 13:25
Классы bondik Общие вопросы C/C++ 1 14.12.2008 14:19
Классы MaxiMILLION Помощь студентам 4 12.10.2008 14:05
классы ShenDy Общие вопросы C/C++ 1 12.04.2008 14:01