Как записывать числа в файл?
От: Аноним  
Дата: 13.12.04 15:39
Оценка:
Мне нужно выполнять вычисления в коде и записывать результат в текстовый файл.
Вот функция API, которая записывает в файл:
WriteFile( hFile, cTextBuffer, sizeof(cTextBuffer), &dwBytes, NULL );

Но она работает с текстом, а как записывать числа в файл? Если можно, покажите пример, который бы выполнял любые вычисления и результат записывал в файл. Спасибо.
Re: Как записывать числа в файл?
От: _McSIMM Россия  
Дата: 13.12.04 15:43
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Мне нужно выполнять вычисления в коде и записывать результат в текстовый файл.

А>Вот функция API, которая записывает в файл:
А>WriteFile( hFile, cTextBuffer, sizeof(cTextBuffer), &dwBytes, NULL );

А>Но она работает с текстом, а как записывать числа в файл? Если можно, покажите пример, который бы выполнял любые вычисления и результат записывал в файл. Спасибо.


А может стоит попробовать iostream & operator >> (<<)?
Re[2]: Как записывать числа в файл?
От: Аноним  
Дата: 13.12.04 15:49
Оценка:
Здравствуйте, _McSIMM, Вы писали:

_MS>Здравствуйте, Аноним, Вы писали:


А>>Мне нужно выполнять вычисления в коде и записывать результат в текстовый файл.

А>>Вот функция API, которая записывает в файл:
А>>WriteFile( hFile, cTextBuffer, sizeof(cTextBuffer), &dwBytes, NULL );

А>>Но она работает с текстом, а как записывать числа в файл? Если можно, покажите пример, который бы выполнял любые вычисления и результат записывал в файл. Спасибо.


_MS>А может стоит попробовать iostream & operator >> (<<)?


На Си пишу. Но в любом случае хочется узнать, как это сделать с помощью Win API.
Re: Как записывать числа в файл?
От: sercher Украина  
Дата: 13.12.04 16:06
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Мне нужно выполнять вычисления в коде и записывать результат в текстовый файл.

А>Вот функция API, которая записывает в файл:
А>WriteFile( hFile, cTextBuffer, sizeof(cTextBuffer), &dwBytes, NULL );

А>Но она работает с текстом, а как записывать числа в файл? Если можно, покажите пример, который бы выполнял любые вычисления и результат записывал в файл. Спасибо.


Во-первых она работает не текстом, а с массивом байт.
Во-вторых если нужна запись чисел в файл в видк строки, используй sprintf(), itoa() ...
Re[3]: Как записывать числа в файл?
От: _McSIMM Россия  
Дата: 13.12.04 18:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А>На Си пишу. Но в любом случае хочется узнать, как это сделать с помощью Win API.


В таком случае, если только Си+АПИ, то, скорее всего придется писать свой парсер,
ибо, насколько мне известно, АПИ для форматированного ввода-вывода нет.
Re[4]: Как записывать числа в файл?
От: Malokhatko2  
Дата: 13.12.04 18:59
Оценка:
Здравствуйте, _McSIMM, Вы писали:

_MS>В таком случае, если только Си+АПИ, то, скорее всего придется писать свой парсер,

_MS>ибо, насколько мне известно, АПИ для форматированного ввода-вывода нет

угу fprintf и fscanf отменили?
Re: Как записывать числа в файл?
От: Malokhatko2  
Дата: 13.12.04 19:16
Оценка:
Здравствуйте, Аноним, Вы писали:

А>WriteFile( hFile, cTextBuffer, sizeof(cTextBuffer), &dwBytes, NULL );

А>Но она работает с текстом, а как записывать числа в файл? Если можно, покажите пример, который бы выполнял любые вычисления и результат записывал в файл. Спасибо.

Надо бы определиться, в каком формате требуется хранить данные?

1. Тестовый, тогда вполне сгодятся функции fprintf и fscanf
2. Бинарный, WriteFile и ReadFile рулят. В этом случае хранится все структурированно (т.е. заранее нужно знать формат файла).

Небольшой пример:

Где то в дебрях H-файла
  struct MY_STRUCT
  {
    char Text[256];
    int IntNum;
    double DoubleNum;
  };


Реализация записи:

  MY_STRUCT DataToWrite;
  strcpy( DataToWrite.Text, "Hello World!!!");
  DataToWrite.IntNom = 112;
  DataToWrite.DoubleNum = 15.2;

  DWORD WrittenBytes = 0;
  WriteFile( hFile, &DataToWrite, sizeof(MY_STRUCT), &WrittenBytes, NULL );


Ну и чтение:
  MY_STRUCT DataToWrite;
  ZeroMemory( &DatToWrite, sizeof(DataToWrite) );
  
  DWORD ReadBytes = 0;
  ReadFile( hFile, &DataToWrite, sizeof(MY_STRUCT),  &ReadBytes, NULL );

  // Теперь можно посмотреть на свою структуру DataToWrite


Я думаю в Вашем случае WriteFile и ReadFile будет вполне достачно
Re: Как записывать числа в файл?
От: Слава Шевцов Россия http://www.rentaguru.ru/
Дата: 14.12.04 18:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Мне нужно выполнять вычисления в коде и записывать результат в текстовый файл.

А>Вот функция API, которая записывает в файл:
А>WriteFile( hFile, cTextBuffer, sizeof(cTextBuffer), &dwBytes, NULL );

А>Но она работает с текстом, а как записывать числа в файл? Если можно, покажите пример, который бы выполнял любые вычисления и результат записывал в файл. Спасибо.


Насколько велико количество чисел? Если очень велико, то можно использовать приведение типов. Например, создавать массив чисел и сохранять в файл.

void Write(UINT *pBuf, UINT nBufLen)
{
    WriteFile(hFile, (void*)pBuf, nBufLen*sizeof(UINT), &dwBytes, NULL);
}
----------------------------------------------------------------------------------------------
Rentaguru
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.