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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2012, 20:45   #1
Neitrosha
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 29
По умолчанию Счетчик при запуске программы.

В наличии рабочая структура в 3 типа:

ключ (int) - данные1 (текст) - данные2 (текст).

Корректное заполнение данных происходит, в txt-документ сохраняется исправно. Возникли проблемы с ключом. Как сделать так, чтобы в структуру заносилось значение ключа и при введении новых данных ключ увеличивался? Я не могу понять, как его можно заносить постоянно в поле "ключ". Если непонятно, то пример.

Введите имя:
Игорь
Введите фамилию:
Алексеев

в txt-документе должно сохраниться: 1) Игорь Алексеев.

Вышли из программы, запустили её снова, вбили новые данные, уже должны получить в txt: 2) Сергей Мухоморов.

Может, как-то адрес ключа из последней строчки берется? Никаких идей нет, надеюсь на помощь или совет. Но хотелось бы видеть пример того, как это может работать.
Neitrosha вне форума Ответить с цитированием
Старый 23.01.2012, 20:54   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

читайте по одной строке до достижения последней, ну и считайте записи.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 24.01.2012, 15:16   #3
Neitrosha
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 29
По умолчанию

Можно хотя бы на примере? Я не понимаю, как можно сделать то же элементарное присвоение, сейчас объясню проблему:

Код:
const l_name=30, const l_fio=30; int number=1;
struct message {
int key;
char name[l_name+1];
char fio[l_fio+1];
}
Идет вызов функции, как сделать так, чтобы было что-то наподобие

message.key=number;
number++;

Чтобы каждый раз счетчик записывался в структуру.

Или стоит "key" объявить как массив, но как тогда туда присваивать счетчик?

Последний раз редактировалось Neitrosha; 24.01.2012 в 15:17. Причина: не дописал
Neitrosha вне форума Ответить с цитированием
Старый 24.01.2012, 16:15   #4
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Neitrosha Посмотреть сообщение
Идет вызов функции, как сделать так, чтобы было что-то наподобие
Код:
int Func(message& crc, int num)
{
    crc.key=num;  num++; 
    return num;
}
Оно?
_Bers вне форума Ответить с цитированием
Старый 24.01.2012, 16:37   #5
Neitrosha
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 29
По умолчанию

Извиняюсь, немного неправильно сформировал.

Программа каждый раз спрашивает, хотим ли мы ввести данные, реализовано в виде отдельной функции, там и вбиваются данные.

Вот нужно, чтобы каждый раз значение счетчика в message.key увеличивалось при вводе новых данных.
Не могу его засунуть туда.

И проблема с новым запуском программы встает, чтобы даже после выхода последнее значение счетчика сохранялось и дальше всё вводилось последовательно.
Neitrosha вне форума Ответить с цитированием
Старый 24.01.2012, 16:50   #6
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Neitrosha Посмотреть сообщение
Извиняюсь, немного неправильно сформировал.

Программа каждый раз спрашивает, хотим ли мы ввести данные, реализовано в виде отдельной функции, там и вбиваются данные.

Вот нужно, чтобы каждый раз значение счетчика в message.key увеличивалось при вводе новых данных.
Не могу его засунуть туда.

И проблема с новым запуском программы встает, чтобы даже после выхода последнее значение счетчика сохранялось и дальше всё вводилось последовательно.
1. При запуске программы, определить текущий ключ
1.1. Текущий ключ равен 1, если файл данных пуст.
1.2. Если же файл данных не пуст, то текущий ключ равен количеству записей в файле +1.

2. При создании очередной структуры для записи, заполнять поле "ключ" не обязательно.

3. При добавлении очередной записи в файл, в поле "ключ" структуры записывается текущее значение ключа. Структура добавляется в файл, после чего текущее значение ключа увеличивается на единицу.

4. Профит!

/зы Если ключ нужен только для определения номера записи в файле, то сама надобность держать этот номер в структуре отпадает.

Последний раз редактировалось _Bers; 24.01.2012 в 16:56.
_Bers вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при запуске программы Neo_AVE C++ Builder 0 04.05.2011 15:38
Ошибка при запуске программы stakam Visual C++ 1 18.12.2010 18:19
mp3 при запуске программы - ? Evgenii Общие вопросы Delphi 8 12.08.2009 08:11
Эффекты при запуске программы Vladya Общие вопросы Delphi 10 17.03.2009 17:29
Ошибка при запуске программы MAcK Общие вопросы .NET 5 14.08.2008 15:12