Ошибки в создании справочника

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

Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

Писать программу совсем не обязательно в среде программирования - подходит любой текстовый редактор, сохраняющий текст в DOS-кодировке. В голом DOS есть утилита EDIT, есть дополнительно лексикон, он тоже вроде может справиться - что угодно. Программу в конце концов можно написать в Win / Nix / Mac средах и только компилировать в среде Borland. Хотя и сама твоя среда должно быть может это,прислушайся к совету Romeo - он дело говорит! Погугли про keyrus или прочитай его справку, там все очень просто.
На заказ: VBA, Excel mc-black@yandex.ru
ЮрийIII
Сообщения: 29
Зарегистрирован: 05 май 2008, 18:15

Ок. Спасибо за совет. Обязательно посмотрю. )
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
А теперь я написал программу для создания файла dat, чтоб в дальнейшем там организовать справочник с расчетом оплаты. Она запускается, но не создаёт файл для записи.

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

#include <stdio.h>
#include <conio.h>
main()
{
FILE *in, //Файловая переменная текстового файла
*out; //Файловая переменная двоичного файла
struct w1
 {
 char fam[15]; char name[10]; char ot[10]; char tel[7]; //ФИО, ном тел.
 //int opm;//об. плата в месяц
 //int dmr;//длительность междугор. разговоров
 //float st; //Стоимость 1 минуты разговора
 }
  w2;
   out=fopen("fileb.dat","w+b"); //Открытие двоичного файла
   if ((in=fopen("fileb.dat","r"))!=NULL) //Откр текстового файла и
                                         //проверка его наличия
   {
   while(fgets(w2.fam,15,in)!=NULL)//Пока не встретится конец файла
     {printf("\n Vvedite F.I.O i nomer tel: ");
     fscanf(in,"%s %s %s %s",&w2.fam, &w2.name, &w2.ot, &w2.tel);
        fwrite(&w2,sizeof(w2),1,out); //Запись в двоичный файл данных на
                                      //одного абонента
   }
 }
 puts("V fayle sleduyuschaya informaciya:");
 rewind(out);
 fread(&w2,sizeof(w2),1,out);
 while(!feof(out))
  {
   printf("%s %s %s %s \t\n", w2.fam, w2.name, w2.ot, w2.tel);
   fread(&w2,sizeof(w2),1,out);
  }
getch();
}
Если не затруднит взгляните, где я ошибся.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Нельзя один и тот же файл открывать два раза подряд. Зачем тебе открытие для чтения, если он уже открыт на w+, что подразумевает и чтение и запись?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
ЮрийIII
Сообщения: 29
Зарегистрирован: 05 май 2008, 18:15

Подскажите где можно скачать или заказать учебники по Си++. Очень надо.
(Нигде не могу найти учебник, чтоб были понятно объесняны создание и занесение данных в текстовый файл). Вобщем учебник с подробным описагием создания баз данных.
Ответить