Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/26: Рейтинг темы: голосов - 26, средняя оценка - 4.73
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
1

Не определяется функция _atold

22.08.2010, 17:00. Показов 5050. Ответов 40
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Почитал про данный метод. На сколько я понял, он может привести массив char к типу double.
Так же, указано, что он принадлежит к stdlib.h или к math.h
Только вот в моем случае, при подключении данных библиотек, метод _atold() подчеркивается красным цветом, т.е. не определяется. Может я что-то не так делаю?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2010, 17:00
Ответы с готовыми решениями:

Не определяется функция getch
Ошибку выдаёт getch();...

Где определяется функция narrow_cast?
Всем привет , скажите пожлст какая библиотека определяет функцию narrow_cast. Взорвал гугл , но не...

Функция не определяется
Доброго времени суток! почему на unsys matlab ругается? % Initialize variables INPUTVEC = 0; %...

Почему не определяется функция?
Я новичок в CLIPS. Пытаюсь определить функцию. Пишу: (deffunction hypotenuse (?a ?b) (sqrt (+...

40
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
22.08.2010, 17:02 2
Вместо _atold попробуйте atof.
1
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
22.08.2010, 17:04  [ТС] 3
это будет во float, а мне таки нужно в double )

Добавлено через 28 секунд
кстати, если в long double, то это _atoldl или _atolld?

upd: ерунду написал - _atold и есть long double
0
Эксперт С++
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
22.08.2010, 17:06 4
Цитата Сообщение от half-node Посмотреть сообщение
Почитал про данный метод. На сколько я понял, он может привести массив char к типу double.
Так же, указано, что он принадлежит к stdlib.h или к math.h
Только вот в моем случае, при подключении данных библиотек, метод _atold() подчеркивается красным цветом, т.е. не определяется. Может я что-то не так делаю?
Для таких случаев б-г изобрёл в вижуал студии кнопку F7. Или build project. А потом уже делайте выводы.
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
22.08.2010, 17:06 5
Цитата Сообщение от half-node Посмотреть сообщение
это будет во float, а мне таки нужно в double )
C++
1
double atof ( const char * str );
1
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
22.08.2010, 17:06 6
Цитата Сообщение от half-node Посмотреть сообщение
это будет во float, а мне таки нужно в double
Вы ссылку открывали?
Цитата Сообщение от cplusplus.com
C++
1
double atof ( const char * str );
1
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
22.08.2010, 17:09  [ТС] 7
Извините, пожалуйста, не узрел. Спасибо CyBOSSeR и alex_x_x

Добавлено через 29 секунд
Скажите, пожалуйста, что значит нижний прочерк перед методом?
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
22.08.2010, 17:11 8
Цитата Сообщение от half-node Посмотреть сообщение
Скажите, пожалуйста, что значит нижний прочерк перед методом?
Это просто часть имени функции.
Обычно с подчеркивания начинаются имена служебных специфичных функций.
0
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
22.08.2010, 18:59  [ТС] 9
В классе есть объект char d_money[25]. В метод класса mstold(char sum[], int k) я преобразовываю массив символов (строку) sum в число double и вывожу на экран уже число.
В итоге имеем картину (во вложении)
Миниатюры
Не определяется функция _atold  
0
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
22.08.2010, 19:02  [ТС] 10
Извиняюсь, ввел вас в заблуждение. Последним, я вывожу массив char, в который через isdigit добавляю только цифры и десятичную точку.
При попытке перевести данный массив символов к типу double посредством atof(t_str), в число записывается только первая цифра.
0
Эксперт С++
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
22.08.2010, 19:37 11
Цитата Сообщение от half-node Посмотреть сообщение
Последним, я вывожу массив char, в который через isdigit добавляю только цифры и десятичную точку
Как выглядит строчка (массив char) ?
0
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
22.08.2010, 20:09  [ТС] 12
Топорно, конечно, но вот
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// 7_7.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <cstring>
using namespace std;
 
class money
{
private:
    char t_money[25];
    long double d_money;
public:
    money():d_money(0.0)
    {};
 
    void get_d_money(char sum[], int k)
    {
        int n,len,len2=0;
        len = strlen(sum);
        for(int i=0;i<25;i++)
            t_money[i]=' ';
        for (n=0; n<len;n++)
        {
            if (isdigit(sum[n]) || sum[n] == '.')
                t_money[len2] = sum[n];
                len2++;
        }
        //double atof(t_money[len2]);
        //cout << "Number: " << t_money;
 
        d_money  = atof (t_money);
        cout << d_money;
        //d_money = strtod(t_money);
    }
 
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    money mm;
    int i=0;
    char inp[25];
    cout << "Enter money: ";
    cin >> inp;
    mm.get_d_money(inp,25);
    
    getch();
    return 0;
}
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
22.08.2010, 20:10 13
half-node, почитайте на досуге, может пригодится:
strtod()
strtol()
0
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
22.08.2010, 21:10  [ТС] 14
Спасибо. Я в курсе о наличии данных функций. Но, во-первых по заданию предложили использовать именно _atold(), ну а во-вторых я не пойму, как использовать функцию strtold() Если параметром указать:
C++
1
2
3
strtold(mas) //синтаксическая ошибка
strtold(mas[]) //две синт. ошибки
strtold(mas[25]) //возвращает в переменную только цифру 25го элемента..
Как быть без использования указателей?
0
Эксперт С++
261 / 191 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
22.08.2010, 21:16 15
Какое число вы вводите ?
Какие у вас региональные настройки ? atof может учитывать их для разграничения целой и дробной части - то есть точку или запятую (рус/укр локализация).
0
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
22.08.2010, 21:43  [ТС] 16
Региональные - русский.
С точкой все норм, я и раньше ее применял без проблем.
Ввожу, ну, скажем: "$1,434,453.34"
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
22.08.2010, 21:45 17
Цитата Сообщение от half-node Посмотреть сообщение
Ввожу, ну, скажем: "$1,434,453.34"
это вам Excel чтоли?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
22.08.2010, 21:48 18
Цитата Сообщение от half-node Посмотреть сообщение
я не пойму, как использовать функцию strtold()
А прям обязательно числа типа long double использовать? Расстояние до Луны в нанометрах считаете?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
int main(void){
    double d;
    char buf[BUFSIZ];
    
    printf("As string: ");
    if ( ! fgets(buf, BUFSIZ, stdin) )
        exit(1);
    d = strtod(buf, NULL);
    printf("As number: %f\n", d);
    
    exit(0);
}
0
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
22.08.2010, 22:50  [ТС] 19
Цитата Сообщение от alex_x_x Посмотреть сообщение
это вам Excel чтоли?
Какой-то странный комментарий, не находите?
Нет, это не ексель - это C++
Цитата Сообщение от easybudda Посмотреть сообщение
А прям обязательно числа типа long double использовать? Расстояние до Луны в нанометрах считаете?
Главное не задача, главное реализация тех или иных возможностей.
Я только учусь)

Добавлено через 2 минуты
C++
1
d_money  = strtod (t_money,NULL);
Выдает только первую цифру. t_money - char массив, d_money - double
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
22.08.2010, 22:52 20
Цитата Сообщение от half-node Посмотреть сообщение
Какой-то странный комментарий, не находите?
Нет, это не ексель - это C++
ну тогда вы не находите разницу между вашими ожиданиями и тем, что собственно делают эти функции?
0
22.08.2010, 22:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2010, 22:52
Помогаю со студенческими работами здесь

Не определяется функция scanf
Привет!) У меня такая проблема.... не хочет считывать строки(( уже все перепробовал..... вот...

Функция не определяется! В чем ошибка?
Заданы некоторые начальные условия программы реализации опорных векторов и алгоритма роя частиц. Но...

Не определяется функция для работы со строками
Не может определить функции для работы со строками. Выдает такую ошибку: &quot;RtlStringCbLengthW&quot;...

HDD определяется в BIOS но не запускается и неправильно определяется объем диска
Всем доброго времени суток, прошу вас о помощи в борьбе с моим винтом от ноута. Попробую описать...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru