 |
help with fscanf, plz |
 |
14.10.2005, 13:14
|
#1
|
forever blowing winds
Join Date: 10 2002
Location: Internet
Age: 43
Posts: 2,178
Rep Power: 5
|
help with fscanf, plz
У меня программа, которая работает с массивами и время от времени записывает их в файлы. Запись в файлы проделывается для того, чтоб в случае вылета программы (ну, бывает, свет там отключат или сисадмины буйствуют) данные не терялись. Но вот эта *********** функция fscanf после вылета все читает неправильно.
Вернее, вроде читает нормально данные, которые надо читать как integer, но вот с float-ами у нее проблемы.
Пытаюсь выводить то, что он прочел, но выводит какой-то мусор, который был в этом массиве и до прочтения.
Code:
FILE *temp_arr1 = fopen("temp_arr1.dat","r");
for (int i = 0; i < Sl_Ar; i++)
fscanf(temp_arr1, "%f\n", &first[i]);
fclose(temp_arr1);
__________________
Оптимиста в детстве уронили. На пессимиста.
|
|
|
14.10.2005, 13:41
|
#2
|
the mochinger
Join Date: 02 2002
Location: Paranoid Android, @10:50
Age: 46
Posts: 1,894
Rep Power: 5
|
some tips:
-stugi vor filen bazvel a
-amen fscanf-iz araj stugi vor eof chi der
__________________
The flower that blooms in adversity is the most rare and beautiful of all.
|
|
|
14.10.2005, 13:57
|
#3
|
...overwined...
Join Date: 03 2003
Location: ...tortuga...
Posts: 3,429
Rep Power: 5
|
без \n пробовала?...
__________________
...let's be gods... let's by ugly...
|
|
|
14.10.2005, 16:18
|
#4
|
forever blowing winds
Join Date: 10 2002
Location: Internet
Age: 43
Posts: 2,178
Rep Power: 5
|
Quote:
Originally Posted by Hans Andersen
some tips:
-stugi vor filen bazvel a
-amen fscanf-iz araj stugi vor eof chi der
|
Вор ми хат ел асес вонц ет сах стугем (инеты чкркрем) гжот клини
noone, пока нет..
__________________
Оптимиста в детстве уронили. На пессимиста.
|
|
|
14.10.2005, 16:38
|
#5
|
the mochinger
Join Date: 02 2002
Location: Paranoid Android, @10:50
Age: 46
Posts: 1,894
Rep Power: 5
|
smth:
fopen
if (temp_arr1)
{}
while (!feof(temp_arr1))
{
fscanf
i++;
if (i > max)
{lav chi lav chi, mez file a; break}
}
if (i < max)
{lav chi lav chi2, poqr file a}
fclose
__________________
The flower that blooms in adversity is the most rare and beautiful of all.
|
|
|
14.10.2005, 19:47
|
#6
|
Ego coder
Join Date: 07 2004
Location: Yerevan, Armenia
Age: 44
Posts: 3,738
Rep Power: 5
|
kam el c++-ov pordzi:
Code:
ifstream is("a.dat");
vector<float> data;
copy(istream_iterator<float>(is), istream_iterator<float>(), back_inserter(data));
__________________
Каждый сам кузнец своего счастья, и несчастья тоже.
|
|
|
14.10.2005, 20:01
|
#7
|
ЙЦУКЕН
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
|
это как раз
memset(first, 0, sizeof(first[0] * Sl_Ar));
ну и массив - у тебя floating ili double?
|
|
|
14.10.2005, 20:59
|
#8
|
forever blowing winds
Join Date: 10 2002
Location: Internet
Age: 43
Posts: 2,178
Rep Power: 5
|
Quote:
Originally Posted by nm
это как раз
memset(first, 0, sizeof(first[0] * Sl_Ar));
ну и массив - у тебя floating ili double?
|
double
...
И разрази меня гром если я что-нибудь поняла
__________________
Оптимиста в детстве уронили. На пессимиста.
|
|
|
15.10.2005, 08:06
|
#9
|
ЙЦУКЕН
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
|
Quote:
Originally Posted by Азазелка
double
...
И разрази меня гром если я что-нибудь поняла 
|
1. обнулять массив перед записью туда данных  просто хороший стиль
man fscanf
Code:
l (ell) Indicates that the conversion will be one of dioux or n and the
next pointer is a pointer to a long int (rather than int), that
the conversion will be one of a, e, f, or g and the next pointer
is a pointer to double (rather than float), or that the conver-
sion will be one of c, s or [ and the next pointer is a pointer
to an array of wchar_t (rather than char).
|
|
|
15.10.2005, 10:15
|
#10
|
Грустно...
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 43
Posts: 21,717
Rep Power: 9
|
Quote:
Originally Posted by Азазелка
double
...
И разрази меня гром если я что-нибудь поняла 
|
Ну так, милая моя, если double, тогда lf/g/e, если float, тогда f/g/e. Нельзя путать, божий дар (64/80 битов) с яичницей (32)
|
|
|
15.10.2005, 11:36
|
#11
|
ЙЦУКЕН
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
|
Quote:
Originally Posted by Agregat
Ну так, милая моя, если double, тогда lf/g/e, если float, тогда f/g/e. Нельзя путать, божий дар (64/80 битов) с яичницей (32) 
|
так и запишем - согласно комитету IEEE божий дар имеет размер 64 или 80.
|
|
|
17.10.2005, 14:18
|
#12
|
forever blowing winds
Join Date: 10 2002
Location: Internet
Age: 43
Posts: 2,178
Rep Power: 5
|
Всем спасибо, ребята, кажись заработало
__________________
Оптимиста в детстве уронили. На пессимиста.
|
|
|
17.10.2005, 14:20
|
#13
|
Грустно...
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 43
Posts: 21,717
Rep Power: 9
|
Quote:
Originally Posted by nm
так и запишем - согласно комитету IEEE божий дар имеет размер 64 или 80.
|
На самом деле может быть и 32  условие такое
sizeof(float) <= sizeof(double), а количество битов - это уже от лукавого
|
|
|
17.10.2005, 14:20
|
#14
|
the mochinger
Join Date: 02 2002
Location: Paranoid Android, @10:50
Age: 46
Posts: 1,894
Rep Power: 5
|
nu i v chem imenno byla problema?
__________________
The flower that blooms in adversity is the most rare and beautiful of all.
|
|
|
17.10.2005, 14:23
|
#15
|
forever blowing winds
Join Date: 10 2002
Location: Internet
Age: 43
Posts: 2,178
Rep Power: 5
|
Quote:
Originally Posted by Hans Andersen
nu i v chem imenno byla problema?
|
Фиг его  собственно, я даже не уверена, что он все нормально читает. Но на результаты это уже сильно не влияет, так что пускай живет  Кажется проблема была именно в том, о чем говорил Агрегат.
__________________
Оптимиста в детстве уронили. На пессимиста.
|
|
|
All times are GMT. The time now is 01:13. |
|
|