Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CString в Double

390
15 марта 2005 года
lexus
143 / / 13.04.2004
Как переменную типа CString перевести в другую переменную double?Заранее благодарен
368
15 марта 2005 года
rostyslav
629 / / 13.07.2004
CString str = "12.4";
double d = atof(str);
8.9K
16 марта 2005 года
Siro
8 / / 24.11.2004
Цитата:
Originally posted by rostyslav
CString str = "12.4";
double d = atof(str);


По моему такой подход не прокатит т.к. в atof необходимо передать тип char или ссылку на char
CString str="12.4";
char *tmp=str.GetBuffer(str/GetLength());
double d=atof(tmp);

368
16 марта 2005 года
rostyslav
629 / / 13.07.2004
Цитата:
Originally posted by Siro

По моему такой подход не прокатит т.к. в atof необходимо передать тип char или ссылку на char
CString str="12.4";
char *tmp=str.GetBuffer(str/GetLength());
double d=atof(tmp);

Смотрел в Visual C. Компилятор не разделяет Твое мнение. А как известно, последнее слово за ним... :)
Но в любом случае, если нужен char * от CString, тогда используют оператор str.c_str()

425
16 марта 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by rostyslav
Смотрел в Visual C. Компилятор не разделяет Твое мнение. А как известно, последнее слово за ним... :)
Но в любом случае, если нужен char * от CString, тогда используют оператор str.c_str()

Господа, в VS 6 для CString определён operator LPCSTR, который даёт преобразование CString к const char*, так что функции типа atof() будут работать правильно.

В VS.NET CString реализован как-то по-другому (не смотрел), но такая же функциональность там тоже есть.

Так что не стесняйтесь писать CString там, где нужен const char*. А GetBuffer() нужен тогда, когда вы хотите получить char* без const, т.е. тогда, когда вы собираетесь ковырять буфер объекта CString напрямую. Тогда надо потом вызывать ReleaseBuffer().

std::string тоже хорошая вешь, особенно, когда не используется MFC.

368
16 марта 2005 года
rostyslav
629 / / 13.07.2004
Цитата:
Originally posted by sq_deep
Господа, в VS 6 для CString определён operator LPCSTR, который даёт преобразование CString к const char*, так что функции типа atof() будут работать правильно.

В VS.NET CString реализован как-то по-другому (не смотрел), но такая же функциональность там тоже есть.

Так что не стесняйтесь писать CString там, где нужен const char*. А GetBuffer() нужен тогда, когда вы хотите получить char* без const, т.е. тогда, когда вы собираетесь ковырять буфер объекта CString напрямую. Тогда надо потом вызывать ReleaseBuffer().

std::string тоже хорошая вешь, особенно, когда не используется MFC.


Да, Вы правы, в Visual C6 используется оператор LPCTSTR для CString.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог