Поиск:

Ответ в темуСоздание новой темы Создание опроса
> с CSting в int ??? дайте совет 
:(
    Опции темы
Magistre
  Дата 10.2.2005, 21:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код проги:
Код

void CAsdfbDlg::OnButton1()
{
UpdateData(TRUE);
CStdioFile file;
CString strText;
if(file.Open("asd",CFile::modeRead))
{
file.ReadString(strText);
m_edit1 = strText;
file.Close();
}
m_edit2 = m_edit1; //  <-- проблема вот тут  :stena
UpdateData(FALSE);
}

о проге:
m_edit1 = CSting
m_edit2 = int
как сделать так чтоб прога прочитала фаил и брала ево как int???
фаил состоит тока из цифр.

Это сообщение отредактировал(а) chipset - 23.2.2005, 01:54
  Вверх
Coocky
Дата 10.2.2005, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



есть функции itoa(...) и atoi()Они переводят текст в число и наоборот smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
IEZ
Дата 10.2.2005, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Примерно так.
Код

CString m_str=_T("12345");
int m_iNum;
m_iNum=atoi(m_str);
smile


--------------------
"Нужно делать так, как нужно, а как не нужно, делать не нужно" (с) Винни-Пух.
PM MAIL WWW ICQ   Вверх
Guest
Дата 10.2.2005, 22:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











хммм...
Пробовал ету тему smile неработает(или я просто настока тупои). Попробую обяснить что надо от проги.

Прога предстафляет из себя простои калькулятор. 2 стороки Edit и одна кнопка.
при откритии проги в первии едит идет то что написанно в фаиле асд.тхт(к примеру там написанна одна цифра "2"), во второи едит пишем луюбую цифру(к примеру "5") и нажимаем на кнопку. при нажатии он складивает еба едита и сохраняет результат в фаил асд.тхт(переписивая фаил). и при следуюшем откритии программи он снова пишет в первии едит то что в фаиле асд.тхт ( сас ето будет "7").

Проблема состоит в том что file.ReadString(strText); возвращает назад значение сорта CString даже если в фаиле написанни цифры. и ето делает невозможним следующую работу. так как сложить циври с первого едита(котории CString) и второго едита (котории int) невозможно =(.

Обясните как витащить из фаила ети цифри так чтоб они били в значении int.
  Вверх
Guest
Дата 10.2.2005, 23:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Лююдиии спасиибо я разобралса хехе я неправильно использовал функцию atoi()

  Вверх
Coocky
Дата 10.2.2005, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Да как и написали,переведи строку в инт.У тебя что не работает,или компиль ругается?
Добавлено @ 23:05
Цитата
Лююдиии спасиибо я разобралса хехе я неправильно использовал функцию atoi()

Ну слава богу smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Guest
Дата 23.2.2005, 01:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Лучше использовать не atoi() & itoa(),а следующее:
Код

CString str;
int i;
str.Format(_T("%d"),i);

А для обратной функции написать свою:
Код

int CStrToInt(CString& str)
{

 //код потом напишу


}

Т.к. функции atoi() и itoa() использует непосредственный выделенный массив символов.
А для выделения этого массива используется некоторое время.
  Вверх
Spieler
Дата 5.1.2006, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Guest
Я пишу схожую прогу только без файла: вывожу результат сразу на едит.
Столкнулся с тойже проблемой.
ну проблемму преобразования числа в строку решил так:
Double x;
x=12.50;
Edit->Text=x.ToString;


Однако наоборот неполучается.
Было бы очень интерестно взглянуть на текст функции
int CStrToInt(CString& str)
{

//код потом напишу

}

Спасибо smile

PM MAIL   Вверх
DESert
Дата 5.1.2006, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



можно еще так:
Код

int i; 
CString string;
sscanf( (LPCTSTR) string, "%d", &i );

--------------------
Трудись, и будешь счастлив ты!
PM MAIL ICQ   Вверх
SmarTi
Дата 23.7.2006, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А ещё такой вопрос: как узнать является ли строка набором из цифр ? пробовал функцию atoi, но она возвращает положительное значение даже если в строке всего несколько цифр, а всё остальное строковые символы.... подскажите кто знает.  
PM MAIL   Вверх
Earnest
Дата 24.7.2006, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Проверить каждый символ строки функцией isdigit. 


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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