Подскажите где может быть ошибка? HELP!

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Mail2k
Сообщения: 1
Зарегистрирован: 30 ноя 2007, 01:01

Подскажите где может быть ошибка? HELP!

Сообщение Mail2k » 30 ноя 2007, 01:07

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

Код: Выделить всё

 "1 - store a formatted text file of accounts"    called \"print.txt\" for printing"
        "2 - update an account
        "3 - add a new account
        "4 - delete an account
        "5 - end program


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

выдает вот такой глюк:

Код: Выделить всё

Enter account to update (1 - 100)
-858993460╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠
7374176.00

Enter charge (+) or payment (-):

Когда после этого вводишь запрашиваемый + или минус,то программа уходит в бесконечный цикл




Код: Выделить всё

2 - update an account
3 - add a new account
4 - delete an account
5 - end program
? Incorrect choice

Enter your choice
1 - store a formatted text file of accounts
    called "print.txt" for printing
2 - update an account
3 - add a new account
4 - delete an account
5 - end program
? Incorrect choice








При нажатии клавиши 3 программа просит ввести номер нового аккаунта,но почему то после ввода любой из цифр выдает то,что такоей акккаунт уже содержит информацию:

Код: Выделить всё

Enter new account number (1 - 100): 4
Account #4 already contains information.


Хотя ни один аккаунт ещё не создан.

При нажатии 4 программа вроде удаляет аккаунт или делает только вид,т.к. аккаунт ещё не создан,но сообщение выдает почему то.

Код: Выделить всё

Enter account to delete (1 - 100): 3
Account #3 deleted.
Подскажите в каrом участке кода кроется ошибка?

Код прилагаю в атаче
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Albor
Сообщения: 482
Зарегистрирован: 06 сен 2004, 12:34
Откуда: Днепропетровск

Re: Подскажите где может быть ошибка? HELP!

Сообщение Albor » 30 ноя 2007, 09:39

А дебагером пройтись? Похоже, что поля clientData не инициализированы. Ты читешь файл как текст, а поля структуры не допускают такого чтения. Первые 4 байта помещаются в clientData.accountNumber и ты получаешь номер аккаунта совсем не тот, который ожидается. Далее обрезаный lastName и т.д - полная абракадабра. Сделай корректное чтение-запись файла credit.dat и не используй reinterpret_cast без крайней нужды.

Ответить