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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 18:49   #1
ardor
Пользователь
 
Регистрация: 16.11.2009
Сообщений: 51
Восклицание Borland C++ 3.1 Работа с файлами.

Исходный файл:
ASW ND5123T 3489 7.2 02.3x11.8x10.1 133 032 12.1 1 1024x0768 70 1.300
Acer Note Light 2699 5.6 02.0x11.8x08.3 100 040 11.4 1 1024x0768 60 0.774

Моя программа:
Цитата:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
main()
{
struct noyt
{
char nazv[15];
int cost;
float mass;
float razm1;
float razm2;
float razm3;
int chast;
int ozy;
float disp;
int video;
int rash1;
int rash2;
int chd;
float hdd;
} gg[30],tt[30],kk[30];
char s[75];
FILE *f,*f1;
if((f=fopen("d:\\note.txt","r"))==N ULL)
{
clrscr();
printf("\n\n\n\n\n FATAL ERROR!!!");
fflush(stdin);
getchar();
return(1);
}
clrscr();
int i=0;
f1=fopen("d:\\newnote.txt","w");
char s1[4],s2[3],s3[4],s4[4],s5[4],s6[3],s7[3],s8[4],s9[1],s10[4],s11[4],s12[2],s13[5];
while(!feof(f))
{
fgets(s,76,f);
fflush(stdin);
strncpy(gg[i].nazv,&s[0],15);
gg[i].cost=atof(strncpy(s1,&s[16],4));
gg[i].mass=atof(strncpy(s2,&s[21],3));
gg[i].razm1=atof(strncpy(s3,&s[25],4));
gg[i].razm2=atof(strncpy(s4,&s[30],4));
gg[i].razm3=atof(strncpy(s5,&s[35],4));
gg[i].chast=atof(strncpy(s6,&s[40],3));
gg[i].ozy=atof(strncpy(s7,&s[44],3));
gg[i].disp=atof(strncpy(s8,&s[48],4));
gg[i].video=atof(strncpy(s9,&s[53],1));
gg[i].rash1=atof(strncpy(s10,&s[55],4));
gg[i].rash2=atof(strncpy(s11,&s[60],4));
gg[i].chd=atof(strncpy(s12,&s[65],2));
gg[i].hdd=atof(strncpy(s13,&s[68],5));
i++;
}
int m=0;
for(int j=0;j<=i;j++)
{
if(gg[j].disp>11)
{
gg[j]=tt[m];
m++;
}
}
for(int u=0;u<m;u++)
{
for(j=0;j<=m;j++)
{
if(tt[j].mass>tt[j+1].mass)
{
kk[1]=tt[j];
tt[j]=tt[j+1];
tt[j+1]=kk[1];
}
}
}
i=0;
while(i<m)
{
fprintf(f1,"\n%15s %4d %3f %4fx%4fx%4f %3d %3d %4f %1d %4dx%4d %2d %5f",tt[i].nazv,tt[i].cost,tt[i].mass,tt[i].razm1,tt[i].razm2,tt[i].razm3,tt[i].chast,tt[i].ozy,tt[i].disp,tt[i].video,tt[i].rash1,tt[i].rash2,tt[i].chd,tt[i].hdd);
i++;
} clrscr();
printf("\n%d %15s\n%d %15s\n",gg[0].cost,gg[0].nazv,gg[1].cost,gg[1].nazv);
fclose(f);
fclose(f1);
return(0);
}
кароче читает из файла почемуто не 2 строки как нужно. а штук 5-6. даж хз откуда он их берет. и еще переменная gg[i].nazv содержит 15 символов а выводит начало правильное и в конце бред какойто добавляет. плиз помогите разобраться.

P.S. Задание: вывести в новый файл все данные по ноутам у которых монитор больше 11 дюймов, и отсортировать их по возрастанию массы. но это я уже сам сделаю. т.е. сделал уже=) вот тока с файлом проблема
ardor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа со списками Borland C++ v3 rap1d188 Помощь студентам 1 16.05.2010 17:03
borland C++ 3.1 работа с файлами Infa-Red Общие вопросы C/C++ 2 10.05.2010 22:37
Работа с классом TStringStream в Borland C++ profi Общие вопросы C/C++ 2 26.07.2009 20:14
Строки и работа с файлами на Borland C++ 3.1 CePryH Помощь студентам 6 16.06.2009 16:37
Работа со строками в Borland C++ SL1M_DOGG Помощь студентам 1 08.06.2009 15:36