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

Бинарные файлы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Отгадывание слова http://www.cyberforum.ru/cpp-beginners/thread95201.html
Ребята,помогите пожалуйста.Нужно разработать программу ,которая описывает процесс отгадывания пользователем слова с использованием определенного числа предоставляемых попыток.Отгадываемое слово (строковой литерал ) хранится в символьном массиве (char )- для изменения самого слова требуется редактирование исходного кода программы.Программа должна поддерживать 3 уровня сложности ,каждый из которых...
C++ управляющий символ, обратный "\n" Существует ли управляющий символ переводящий каретку на предыдущую строку (т е выполняющий роль обратную "\n") или любой другой способ перевести каретку? Если нет, то существуют ли какие-либо функции ввода данных с клавиатуры, не переводящие каретку на следующую строку? (среда Borland C++ 3.1) http://www.cyberforum.ru/cpp-beginners/thread95196.html
C++ Русик консоли
Я конешно понимаю что поднимаю эту тему тысячный раз, но все таки: пишу на wxDev-C++ для русификации код: #include <iostream> #include <locale.h> using namespace std; int main() { setlocale (LC_ALL,"Russian");
C++ Вычислить значение функции
C++ нада написать программу y=sinx-lnx x (6.8) дельта x=0.3 pls Help!!!!
C++ нужно срочно прогу написать http://www.cyberforum.ru/cpp-beginners/thread95156.html
Разработать программу, вычисляющую сумму ряда (табл.1), до тех пор, пока его очередной член не станет меньше заданной точности e. Точность вводится с клавиатуры. Результат выводится на экран в виде таблицы со столбцами i (номер текущего шага), ai(значение i-го члена ряда), Si (текущая сумма ряда). Для сбережения ресурсов при вычислении (i+1)-го элемента последовательности целесообразно...
C++ Новое окно консоли... Подскажите как заставить подпрограмму на C выполняться в новом окне?.. Заранее спасибо. ЗЫ. В поиске был подробнее

Показать сообщение отдельно
B_izo_n
0 / 0 / 0
Регистрация: 10.12.2008
Сообщений: 20
13.02.2010, 12:33  [ТС]     Бинарные файлы
Цитата Сообщение от ISergey Посмотреть сообщение
B_izo_n, Может вы покажите как производится запись и чтение.. (и саму структуру тоже)
Вот моя структура и функции записи и чтения (извиняюсь за большой код):
Код
struct Tel_Book
{
Tel_Book *pPrev,*pNext;
int num;
char first_name[27];
int in_year;
char tel_number[20];
friend ostream& operator <<(ostream& os, const Tel_Book &tbook);
};
вот запись:
Код
pCur=pHead;
if(addnew)
{//1
cout<<endl<<"Save to File? y/n";
set=getch();
if(set==121||set==89||set==-83||set==-115)//if Yes
 {//2
if(exists)
basa=fopen("../Basa.tel","a+b");
if(!exists)
basa=fopen("../Basa.tel","w+b");
if(basa==NULL)
  {//3
cout<<endl<<"Can't open file";
break;//выхожу из case
  }//3
 while(pCur)
   {//4
fwrite(pCur,sizeof(Tel_Book),1,basa);
pCur=pCur->pNext;
   }//4
А вот чтение:
Код
bool a;
FILE *F;
if((F=fopen("../Basa.tel","rb"))==NULL)
a=false;
else
{
t_book=new Tel_Book;
fread(t_book,sizeof(Tel_Book),1,F);
pHead=pCur=t_book;
pHead->pNext=pHead->pPrev=NULL;
while(!feof(F))
  {
t_book=new Tel_Book;
fread(t_book,sizeof(Tel_Book),1,F);
t_book->pNext=NULL;
t_book->pPrev=pCur;
pCur->pNext=t_book;
pCur=t_book;
t_book=NULL;
  }
}
fclose(F);
пробовал в цикле вставлять переьенную char и проверял на '\0'
ну например:
char f;
while(!feof(F))
{
fread(f,sizeof(char),1,F);
if(f=='\0')
break;
fseek(F,-sizeof(char),1);
.............читаем далее
}
вышел из ситуации удалением последнего считанного объекта:
pCur=t_book->pPrev;
pCur->pNext=NULL;
delete t_book;
t_book=NULL;
Но ... вопрос остается открытым.
интересно знать, на что же нужно проверять последний символ.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru