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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2010, 15:16   #1
xxJERRYxx
Новичок
Джуниор
 
Регистрация: 28.06.2010
Сообщений: 3
По умолчанию Бинарный ввод\ вывод С++

Здрасте уважаемые.
Пытался сделать грубо говоря СУБД из массива записей, однако столкнулся с проблемой ввода\вывод при работе с бинарными файлами. Суть в том что и ввод и вывод происходят без ошибо, однако на выходе вместо записанного строкового значения ||* , а вместо вещественных 0.00000.
Вот собственно код:

Код:
        
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <fstream.h>
#include <iostream.h>


struct most {
   char nazv[20];
   float vis;
   float shir;
   float opor;
   float dlin;};


most m;
most mas[10];
int i,j,c;
FILE *fp;
char b;

int newbase(int k,int z)
   {
    clrscr();
    if ((fp=fopen("fp.dat", "wb")) ==0 )
      {
	printf ("error. can't open file");
	getch();
      }

    while (k<z)

      {
       clrscr();
       printf("nazvanie - "); scanf("%s",&m.nazv);
       printf("\nvisota - "); scanf("%f",&m.vis);
       printf("\nshirina - "); scanf("%f",&m.shir);
       printf("\nkol-vo opor - "); scanf("%f",&m.opor);
       printf("\nprot9jennost - "); scanf("%f",&m.dlin);
       fwrite(&fp, sizeof(most),1,fp);
       if(ferror(fp)==0)
	 {
	  perror("error. can't write into file");
         }
       k++;
      }

    fclose(fp);
    getch();
    return 0;
   }

int prosm(int x,int y )
   {
     clrscr();
     if ((fp=fopen("fp.dat", "wb")) ==0 )
      {
	printf ("error. can't open file");
	getch();
      }
     while(!feof(fp))
	{
	 fread(&mas[x], sizeof(most),1,fp);
	 x++;
	}
     fclose(fp);
     printf("Nazvanie \t Visota \t  Shirina \t Kol-vo opor \t Dlina");
     for (y=0;y<x-1;y++)
	{
       printf("\n%s \t %f \t %f \t %f \t %f",mas[y].nazv,mas[y].vis,mas[y].shir,mas[y].opor,mas[y].dlin);
	}
     getch();
     return 0;
   }


void main()

{
 c=0;
 clrscr();
 while (c!=6)
   {
    i=0;
    j=0;
    clrscr();
    printf("1.Sozdanie bazi\n2.Dobavlenie zapise\n3.Prosmotr basi         \n4.Sortirovka bazi\n5.Poisk\n6.Vixod\n");
    scanf("%d",&c);
    if (c==1)
       {
	clrscr();
	printf("Skolko zapisei sozdat' ?\n");
	scanf("%d",&i);
	newbase(j,i);
       }
    else if (c==3)
	   {
	    prosm(j,i);
	   }

   }
}
Теги code для кого придуманы???

Последний раз редактировалось Carbon; 28.06.2010 в 21:06.
xxJERRYxx вне форума Ответить с цитированием
Старый 28.06.2010, 17:29   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

а что вы собственно пытаетесь писать в файл?
Код:
fwrite(&fp, sizeof(most),1,fp);
counter вне форума Ответить с цитированием
Старый 28.06.2010, 19:11   #3
xxJERRYxx
Новичок
Джуниор
 
Регистрация: 28.06.2010
Сообщений: 3
По умолчанию

Эммм ну в общем то по одноименному с файлом указателю же вроде пишу , адрес указываю и записываю сформированную структуру.

А что-то не так ?
xxJERRYxx вне форума Ответить с цитированием
Старый 28.06.2010, 21:05   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

scanf("%s",&m.nazv); --> scanf("%s",m.nazv);
fwrite(&fp, sizeof(most),1,fp); --> fwrite(&m, sizeof(most),1,fp);
Carbon вне форума Ответить с цитированием
Старый 28.06.2010, 21:55   #5
xxJERRYxx
Новичок
Джуниор
 
Регистрация: 28.06.2010
Сообщений: 3
По умолчанию

Премного благодарю
xxJERRYxx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Ввод - вывод AquaticSoul Помощь студентам 0 18.04.2010 20:02
Ввод-вывод Sparky Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 04.10.2009 13:15
Ввод-вывод в С++ StudentPolitech Помощь студентам 0 04.06.2009 20:07
Ввод и вывод Mihael-Vlz Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2009 18:00