Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.64
kRicha
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 119
#1

float vs string - C++

20.02.2011, 15:57. Просмотров 1799. Ответов 29
Метки нет (Все метки)

в общем есть такая конструкция
C++
1
2
3
4
5
6
FILE* pfi;
    char* fn = "D:/test.txt";
    pfi= fopen(fn,"w+");
    fputs("\tx=",pfi);
    fputs(x,pfi);
    fclose(pfi);
x float и функция не хочет писать симво в файл. Подскажите как его сделать стрингом?
Ну или как можно соединисть строку "\t x=" со значением 2.452354, что б вышла в итоге строка "\t x=2.452354" и потом уже ее записать в файл.


Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2011, 15:57     float vs string
Посмотрите здесь:

Из float в string - C++
Как из переменной типа флоат записать число в string? float x = -123.56; string Str; Нужно чтобы Str стало равно "-123.56"

c++ string to float - C++
string to float или double обычная консоль как перевести

Конвертирования float в string - C++
Доброго времени суток...кто может обяснить что означает каждая строка... string *ch = new string, ch1; char szbuff; for (int i =...

Преобразование String в float - C++
Добрый день уважаемые форумчане. Подскажите пожалуйста как преобразовать String в float. Заранее благодарен.

Преобразование string в float - C++
подскажите как оптимальнее преобразовать число в формате CString -1E+008, которое я получаю из Excel-я. Может существуют стандартные...

Преобразовать string в float - C++
Привет! Подскажите, пожалуйста, наиболее простой способ, как преобразовать значение типа string в float.

Преобразовать из float в string - C++
Скажите, пжл, какие существуют ф-ии для конвертации из float в string?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.02.2011, 16:04     float vs string #2
Для начала
C
1
char* fn = "D:\\test.txt";
kRicha
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 119
20.02.2011, 16:06  [ТС]     float vs string #3
а что с ним?

Добавлено через 54 секунды
ааа, понял, ок, но оно и так работало... но я изменю.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.02.2011, 16:07     float vs string #4
И неплохо бы fprintf юзать для этого.

C
1
fprintf(pfi, "\tx = %lf", x);
kRicha
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 119
20.02.2011, 16:10  [ТС]     float vs string #5
C++
1
fprintf(fn, "\tx = %lf", x);
error C2664: fprintf: невозможно преобразовать параметр 1 из "char []" в "FILE *"

и, разве эта функция не выводит строку на экран?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.02.2011, 16:12     float vs string #6
kRicha, я поправил, первым параметром конечно поток идёт.
На экран (точнее, в стандартный поток вывода, связанный с консолью) выводит printf, а fprintf - в тот поток, который мы укажем в качестве первого параметра.
kRicha
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 119
20.02.2011, 16:18  [ТС]     float vs string #7
C++
1
fprintf(pfi, "\ty = %lf", y,"\n");
а так уже юзать нельзя?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.02.2011, 16:22     float vs string #8
kRicha, нет. Но того эффекта, которого вы хотите добиться, можно достичь так:
C
1
fprintf(pfi, "\ty = %lf\n", y);
Добавлено через 1 минуту
Вообще правило: первым параметром пишем строку в том виде, в каком хотим видеть её на экране, заменяя в ней все переменные на спецификаторы соответствующего типа, а вторым параметром сами переменные в правильном порядке.
kRicha
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 119
20.02.2011, 16:23  [ТС]     float vs string #9
да, это действительно оно. Спасибо. А не могли б вы обьяснить конструкцию?

и еще, как оставлять 3 знака после запятой?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.02.2011, 16:24     float vs string #10
Конструкция подчиняется описанному правилу, там вроде всё понятно. Чтобы оставить три знака после запятой, %lf надо заменить на %.3f
kRicha
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 119
20.02.2011, 16:31  [ТС]     float vs string #11
благодарствую

C++
1
cout << "\n "<< x1 << " < x =< 3: \n";
это у меня выводит на экран. В файл над такое же записать, это правильно?
C++
1
2
    fprintf(pfi,"%d",x1);
    fprintf(pfi, "< x <3\n");
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.02.2011, 16:37     float vs string #12
Это сишный вариант. В плюсах стоит делать так:
C++
1
2
3
4
#include <fstream>
//...
std::ofstream output("output.txt");
output << "something";
На месте "output.txt" должен быть путь к файлу, куда будем выводить. На месте "something" - то, что будем выводить. Короче говоря, с output теперь можно работать так же, как со стандартным std::cout.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
20.02.2011, 16:38     float vs string #13
kRicha, можно так:
C
1
fprintf(fpi, "\n%d < x < 3\n", x1);
А вообще, прочитай про форматный вывод
kRicha
0 / 0 / 0
Регистрация: 27.01.2011
Сообщений: 119
20.02.2011, 16:41  [ТС]     float vs string #14
Цитата Сообщение от silent_1991 Посмотреть сообщение
Это сишный вариант. В плюсах стоит делать так:
C++
1
2
3
4
#include <fstream>
//...
std::ofstream output("output.txt");
output << "something";
На месте "output.txt" должен быть путь к файлу, куда будем выводить. На месте "something" - то, что будем выводить. Короче говоря, с output теперь можно работать так же, как со стандартным std::cout.
пасиб, но летит куча ошибок...
Цитата Сообщение от Nameless One Посмотреть сообщение
kRicha, можно так:
C
1
fprintf(fpi, "\n%d < x < 3\n", x1);
А вообще, прочитай про форматный вывод
да, Ваш вариант работает так же как и мой, то есть вместо введенного числа он отображает "0" (на месте х1)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2011, 16:45     float vs string
Еще ссылки по теме:

Перевод из string в float - C++
считывается выражение (числа и 5 возможных действий +, -, /, *, %) надо его посчитать планирую делать через польскую обратную запись ...

Конвертирование float/int to string - C++
Здравствуйте, я пишу программу на dev-c++ и мне надо конвертировать число в string.Я просто не знаю как это сделать в dev-c++. Помогите...

Как перевести из Float в String? - C++
Вот такой код: MemoryManager* MM = new MemoryManager(&quot;gta_sa.exe&quot;); DWORD offsets = { 0x14, 0x30 }; float ammo = 10; ...

Как перевести из float -> char[](string)??? - C++
Как преобразовать дробь типа float 0.625 в строку (массив символов). Не используя библиотечные функции, (кроме iostrean.h и iomanip.h)

Конвертация типов. float в string/char - C++
Помогите реализовать! Для примера возьмем: У меня есть двумерный массив типа float (Primer1) и есть массив типа string или char...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
20.02.2011, 16:45     float vs string #15
Цитата Сообщение от kRicha Посмотреть сообщение
но летит куча ошибок...
Надо же, ни один, кто говорит про ошибки, не понимаете, что тут не экстрасенсы сидят... Какие ошибки? Подключили fstream?

Добавлено через 1 минуту
И покажите код, который выдаёт ошибки.
Yandex
Объявления
20.02.2011, 16:45     float vs string
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru