Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters

Reply
 
Thread Tools

help with fscanf, plz
Old 14.10.2005, 13:14   #1
forever blowing winds
 
Азазелка's Avatar
 
Join Date: 10 2002
Location: Internet
Age: 43
Posts: 2,178
Rep Power: 5
Unhappy 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);
__________________
Оптимиста в детстве уронили. На пессимиста.

Old 14.10.2005, 13:41   #2
the mochinger
 
Hans Andersen's Avatar
 
Join Date: 02 2002
Location: Paranoid Android, @10:50
Age: 46
Posts: 1,894
Rep Power: 5
Default

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.

Old 14.10.2005, 13:57   #3
...overwined...
 
noone's Avatar
 
Join Date: 03 2003
Location: ...tortuga...
Posts: 3,429
Rep Power: 5
Default

без \n пробовала?...
__________________
...let's be gods... let's by ugly...

Old 14.10.2005, 16:18   #4
forever blowing winds
 
Азазелка's Avatar
 
Join Date: 10 2002
Location: Internet
Age: 43
Posts: 2,178
Rep Power: 5
Default

Quote:
Originally Posted by Hans Andersen
some tips:
-stugi vor filen bazvel a
-amen fscanf-iz araj stugi vor eof chi der
Вор ми хат ел асес вонц ет сах стугем (инеты чкркрем) гжот клини
noone, пока нет..
__________________
Оптимиста в детстве уронили. На пессимиста.

Old 14.10.2005, 16:38   #5
the mochinger
 
Hans Andersen's Avatar
 
Join Date: 02 2002
Location: Paranoid Android, @10:50
Age: 46
Posts: 1,894
Rep Power: 5
Default

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.

Old 14.10.2005, 19:47   #6
Ego coder
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Yerevan, Armenia
Age: 44
Posts: 3,738
Rep Power: 5
Default

kam el c++-ov pordzi:
Code:
ifstream is("a.dat");
vector<float> data;
copy(istream_iterator<float>(is), istream_iterator<float>(), back_inserter(data));
__________________
Каждый сам кузнец своего счастья, и несчастья тоже.

Old 14.10.2005, 20:01   #7
nm
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
Default

это как раз
memset(first, 0, sizeof(first[0] * Sl_Ar));

ну и массив - у тебя floating ili double?

Old 14.10.2005, 20:59   #8
forever blowing winds
 
Азазелка's Avatar
 
Join Date: 10 2002
Location: Internet
Age: 43
Posts: 2,178
Rep Power: 5
Default

Quote:
Originally Posted by nm
это как раз
memset(first, 0, sizeof(first[0] * Sl_Ar));

ну и массив - у тебя floating ili double?
double
...
И разрази меня гром если я что-нибудь поняла
__________________
Оптимиста в детстве уронили. На пессимиста.

Old 15.10.2005, 08:06   #9
nm
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
Default

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).

Old 15.10.2005, 10:15   #10
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 43
Posts: 21,717
Rep Power: 9
Default

Quote:
Originally Posted by Азазелка
double
...
И разрази меня гром если я что-нибудь поняла
Ну так, милая моя, если double, тогда lf/g/e, если float, тогда f/g/e. Нельзя путать, божий дар (64/80 битов) с яичницей (32)
__________________
http://аvitya.livejournal.com
Хотели, как лучше, а получилось даже хуже...
Лозунг шахматиста: На каждый шах - ответим матом!

Old 15.10.2005, 11:36   #11
nm
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
Default

Quote:
Originally Posted by Agregat
Ну так, милая моя, если double, тогда lf/g/e, если float, тогда f/g/e. Нельзя путать, божий дар (64/80 битов) с яичницей (32)

так и запишем - согласно комитету IEEE божий дар имеет размер 64 или 80.

Old 17.10.2005, 14:18   #12
forever blowing winds
 
Азазелка's Avatar
 
Join Date: 10 2002
Location: Internet
Age: 43
Posts: 2,178
Rep Power: 5
Default

Всем спасибо, ребята, кажись заработало
__________________
Оптимиста в детстве уронили. На пессимиста.

Old 17.10.2005, 14:20   #13
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 43
Posts: 21,717
Rep Power: 9
Default

Quote:
Originally Posted by nm
так и запишем - согласно комитету IEEE божий дар имеет размер 64 или 80.
На самом деле может быть и 32 условие такое
sizeof(float) <= sizeof(double), а количество битов - это уже от лукавого
__________________
http://аvitya.livejournal.com
Хотели, как лучше, а получилось даже хуже...
Лозунг шахматиста: На каждый шах - ответим матом!

Old 17.10.2005, 14:20   #14
the mochinger
 
Hans Andersen's Avatar
 
Join Date: 02 2002
Location: Paranoid Android, @10:50
Age: 46
Posts: 1,894
Rep Power: 5
Default

nu i v chem imenno byla problema?
__________________
The flower that blooms in adversity is the most rare and beautiful of all.

Old 17.10.2005, 14:23   #15
forever blowing winds
 
Азазелка's Avatar
 
Join Date: 10 2002
Location: Internet
Age: 43
Posts: 2,178
Rep Power: 5
Default

Quote:
Originally Posted by Hans Andersen
nu i v chem imenno byla problema?
Фиг его собственно, я даже не уверена, что он все нормально читает. Но на результаты это уже сильно не влияет, так что пускай живет Кажется проблема была именно в том, о чем говорил Агрегат.
__________________
Оптимиста в детстве уронили. На пессимиста.
Reply




Реклама:
реклама
Buy text link .

All times are GMT. The time now is 01:13.
Top

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.