Glorh
26-12-2010, 20:18
Приветствую!
Прежде всего хочу сказать, что писать программу за меня не прошу. Просто дайте совет, если вам, конечно, не сложно.
Проблема моя состоит в том, что программа не корректно считывает символы, суть далее
(Я, конечно, понимаю, что если криво запрограммировано, то и считывать будет криво. Прошу помочь мне найти кривизну кода.)
Дабы не кидать всю прогу целиком, тем более, что она ещё и на 20% не сделана, вот часть, ответственная за считывание:
-----------------------
void fr() //читалка-печаталка
{
int i,l;
i=0;
char str[7];
char str2[7];
fseek(input,0,SEEK_END);
l=ftell(input);
printf("\n%d\n",l);
while(i<l)
{
fseek(input,i,SEEK_SET);
fread(s.im,sizeof(s.im),1,input);
fread(s.ei,sizeof(s.ei),1,input);
fread(str,sizeof(str),1,input);
fread(str2,sizeof(str2),1,input);
printf ("%s ",s.im);
printf ("%s ",s.ei);
s.year=atof(str);
s.year2=atof(str2);
if (i==0) printf("%.0f %.0f\n",s.year,s.year2);
else printf("%.1f %.1f\n",s.year,s.year2);
i+=sizeof(s.im)+sizeof(s.ei)+sizeof(str)+sizeof(str2);
}
}
----------------
а вот и структура, в элементы которой сейвятся значения
----------------
struct tab{
char im[15];
char ei[14];
float year;
float year2;
} s;
----------------
структура считываемого файла
[текст][текст2][число][число]
printf ("%s ",s.im); выводит
[текст]+[текст2], хотя должна [текст]. В чём кривость (ток не надо говорить, что в руках).
С уважением и надеждой на помощь.
Прежде всего хочу сказать, что писать программу за меня не прошу. Просто дайте совет, если вам, конечно, не сложно.
Проблема моя состоит в том, что программа не корректно считывает символы, суть далее
(Я, конечно, понимаю, что если криво запрограммировано, то и считывать будет криво. Прошу помочь мне найти кривизну кода.)
Дабы не кидать всю прогу целиком, тем более, что она ещё и на 20% не сделана, вот часть, ответственная за считывание:
-----------------------
void fr() //читалка-печаталка
{
int i,l;
i=0;
char str[7];
char str2[7];
fseek(input,0,SEEK_END);
l=ftell(input);
printf("\n%d\n",l);
while(i<l)
{
fseek(input,i,SEEK_SET);
fread(s.im,sizeof(s.im),1,input);
fread(s.ei,sizeof(s.ei),1,input);
fread(str,sizeof(str),1,input);
fread(str2,sizeof(str2),1,input);
printf ("%s ",s.im);
printf ("%s ",s.ei);
s.year=atof(str);
s.year2=atof(str2);
if (i==0) printf("%.0f %.0f\n",s.year,s.year2);
else printf("%.1f %.1f\n",s.year,s.year2);
i+=sizeof(s.im)+sizeof(s.ei)+sizeof(str)+sizeof(str2);
}
}
----------------
а вот и структура, в элементы которой сейвятся значения
----------------
struct tab{
char im[15];
char ei[14];
float year;
float year2;
} s;
----------------
структура считываемого файла
[текст][текст2][число][число]
printf ("%s ",s.im); выводит
[текст]+[текст2], хотя должна [текст]. В чём кривость (ток не надо говорить, что в руках).
С уважением и надеждой на помощь.