Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись в файл 
:(
    Опции темы
ferum
Дата 17.4.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.4.2006

Репутация: нет
Всего: нет



Приве всем.
Я хочу записать в файл число типа float.
(массивы через структуры мне не надо, т.к это поэлементное считывание)
а у меня в файле будет тысячи чисел.
Строку занести в файл тоже могу, а вот числа никак не получается.
Подскажите как это осуществить? 
PM MAIL   Вверх
_hunter
Дата 17.4.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



так а в чем проблема?
пишем 
WriteFile(hFile, (char*)number, sizeof(double), &numberOfBytesWritten, NULL);
и все... 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
ferum
Дата 17.4.2006, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.4.2006

Репутация: нет
Всего: нет



А можно  на конкретном примере?
float number=50;
DWORD numberOfBytesWritten;
 
PM MAIL   Вверх
_hunter
Дата 17.4.2006, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



дык:
Код

float number = 50;
DWORD numberOfBytesWritten = 0;
WriteFile(hFile, (char*)number, sizeof(number), &numberOfBytesWritten, NULL);


в чем проблема-то? 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Doc_d0s
Дата 17.4.2006, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 15.12.2004
Где: в кресле

Репутация: нет
Всего: 3




(char*)number

а как он флоат к строке приведет? не особо понятен механизм:?
может лучше взять функцию из серии Atof? 
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
ferum
Дата 17.4.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.4.2006

Репутация: нет
Всего: нет



[_hunter]

На строке
WriteFile(hFile, (char*)number, sizeof(number), &numberOfBytesWritten, NULL);

пишет ошибку
Incompatible type conversion


Если использовать atof 
(такая же ошибка: )
 
PM MAIL   Вверх
SergeCpp
Дата 17.4.2006, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

Репутация: 10
Всего: 124



WriteFile(hFile, (void*)&number, sizeof(number), &numberOfBytesWritten, NULL);

// можно и char* оставить... если компилер не заругается...   

Это сообщение отредактировал(а) SergeCpp - 17.4.2006, 21:11
PM MAIL WWW ICQ   Вверх
ferum
Дата 17.4.2006, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.4.2006

Репутация: нет
Всего: нет



  SergeCpp   
Компилит нормально только в файл какую-то лабуду скидывает.
У меня такое же было (массивы через структуры, 
там поэлементное считывание)
А можно ли считать весь файл?
 
PM MAIL   Вверх
ferum
Дата 18.4.2006, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.4.2006

Репутация: нет
Всего: нет



Нашёл ответ (на VINGRADe)

Код
  
double val = 1234.56;//что записываем
char *buf;// куда записываем
int digits = 6;//кол-во цифр, которые будут записаны
gcvt(val, digits, buf);  
  

Тему можно закрывать 
PM MAIL   Вверх
Earnest
Дата 18.4.2006, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 33
Всего: 183



Так бы сразу и сказал, что тебе в текстовом виде надо... Функций преобразования числа в строку - тьма. Начиная от найденного тобою gcvt до sprintf... 


--------------------
...
PM   Вверх
ferum
Дата 18.4.2006, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.4.2006

Репутация: нет
Всего: нет



У меня возник вопрос
А как записать значение (число) на
следующую строку В ФАЙЛЕ
(на вторую) а так всё записывает на первую.(  for   не помогает) 
PM MAIL   Вверх
_hunter
Дата 18.4.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



пиши после числа 0х0D0A 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
ferum
Дата 18.4.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.4.2006

Репутация: нет
Всего: нет



А можно по-конкретнее(после какого числа)

Код
 
float val=1234.56;//что записываем
char *buf;// куда записываем
int digits =6;//кол-во цифр, которые будут записаны
int i;
DWORD numberOfBytesWritten; 

for (i=1;i<=5;i++)
{
   gcvt(val, digits, buf);
   WriteFile(hFile,buf,7,&numberOfBytesWritten, NULL);
}
  
PM MAIL   Вверх
_hunter
Дата 18.4.2006, 14:09 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 13
Всего: 98



после 
WriteFile(hFile,buf,7,&numberOfBytesWritten, NULL);
напиши
WriteFile(hFile, "\r\n", 2, &numberOfBytesWritten, NULL);
( или наоборот ) 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
ferum
Дата 18.4.2006, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 17.4.2006

Репутация: нет
Всего: нет



 hunter  спасибо
На другой проге пошло, на этой не хочет.(странно)
У меня вот возник вопрос по этой теме
А можно ли считать с файла весь текст (а не каждый элемент по отдельности). Инфы на эту тему у меня слишком мало.
 
PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0910 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.