ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |

23.05.2009, 11:22
|
|
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме: 1608432
Репутация:
158
|
|
консоль -> GUI
есть простейшая консольная программа:
Код:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
char buffer[500];
loop: printf("Vvedite chislo: ");
scanf("%o", &i);
itoa(i,buffer,10);
printf("decimal: %s\n", buffer);
itoa(i,buffer,16);
printf("hexadecimal: %s\n", buffer);
itoa(i, buffer, 2);
printf("binary: %s\n", buffer);
printf ("\n");
printf ("_____________________________\n");
printf ("\n");
getchar ();
goto loop;
getchar ();
return 0;
}
помогите сделать ее на ГУИ чтобы ввод числа:
Код:
( loop: printf("Vvedite chislo: ");
scanf("%o", &i); )
вводился в текстбокс и по нажатию кнопки результаты:
Код:
itoa(i,buffer,10);
printf("decimal: %s\n", buffer);
itoa(i,buffer,16);
printf("hexadecimal: %s\n", buffer);
itoa(i, buffer, 2);
printf("binary: %s\n", buffer);
выводились на форме
Последний раз редактировалось s_p_a_m; 23.05.2009 в 11:24..
|
|
|

23.05.2009, 12:04
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Я точно не понял чем ГУИ вариант должен отличатся от консольного.Но возможно это так
Код:
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;
char buffer[500];
i=atoi(Edit1->Text.c_str());
itoa(i,buffer,10);
printf("decimal: %s\n", buffer);
itoa(i,buffer,16);
printf("hexadecimal: %s\n", buffer);
itoa(i, buffer, 2);
printf("binary: %s\n", buffer);
Label1->Caption=buffer;
}
|
|
|

23.05.2009, 12:15
|
|
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме: 1608432
Репутация:
158
|
|
гуи вариант должен отличатся от консольного визуальным интерфейсом  и если можно то по порядку  ато я в ГУИ темный лес...  отблагодарю как могу
|
|
|

23.05.2009, 12:29
|
|
Познающий
Регистрация: 15.12.2008
Сообщений: 30
Провел на форуме: 438085
Репутация:
15
|
|
тебе дали пример на Builder C++. Там уже проще некуда
|
|
|

23.05.2009, 12:36
|
|
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме: 2982851
Репутация:
107
|
|
Сначала немного недопонял что делает консольній вариант.Кажется вот то что надо
Код:
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i;AnsiString out;
char buffer[500];
i=atoi(Edit1->Text.c_str());
itoa(i,buffer,10);
out=out+"decimal:"+AnsiString(buffer)+"\r";
itoa(i,buffer,16);
out=out+"exadecimal:"+AnsiString(buffer)+"\r";
itoa(i, buffer, 2);
out=out+"binary:"+AnsiString(buffer)+"\r";
Label1->Caption=out;
}
На форму надо добавить TEdit,TButton,TLabel 2 раза жмакнуть по баттону и скопировать туда нужный код.
ЗЫ:это код для Borland C++ Builder
|
|
|

23.05.2009, 12:38
|
|
Участник форума
Регистрация: 08.02.2008
Сообщений: 116
Провел на форуме: 1608432
Репутация:
158
|
|
у меня VC++ 2008, при компиляции ошибки, просто если можно выложите готовые исходники для студии, с меня +++, буду благодарен
|
|
|

23.05.2009, 14:16
|
|
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме: 991929
Репутация:
395
|
|
делать нефиг...
вот цени чисто на winAPI  exe весит 3,5 кило... можно меньше хех
скачать проект
Сообщение от sprintf format
d, i — десятичное знаковое число, размер по-умолчанию, sizeof( int ). По-умолчанию записывается с правым выравниванием, знак пишется только для отрицательных чисел;
o — восьмеричное беззнаковое число, размер по-умолчанию sizeof( int );
u — десятичное беззнаковое число, размер по-умолчанию sizeof( int );
x и X — шестнадцатеричное число, x использует маленькие буквы (abcdef), X большие (ABCDEF), размер по-умолчанию sizeof( int );
f и F — числа с плавающей запятой. По-умолчанию выводятся с точностью 6, если число по модулю меньше единицы, перед десятичной точкой пишется 0. Величины ±∞ представляются в форме [-]inf или [-]infinity, Величина Nan представляется как [-]nan или [-]nan(любой текст далее). Использование F выводит указанные величины заглавными буквами (-INF, NAN). Аргумент по-умолчанию имеет размер double.
e и E — числа с плавающей запятой в экспоненциальной форме записи (вида 1.1e+44); e выводит символ «e» в нижнем регистре, E — в верхнем (3.14E+0);
g и G — число с плавающей запятой; форма представления зависит от значения величины (f или e);
a и A — число с плавающей запятой в шестнадцатеричном виде;
Последний раз редактировалось Gar|k; 23.05.2009 в 14:28..
Причина: ну это так для справки
|
|
|

23.05.2009, 17:09
|
|
Новичок
Регистрация: 18.05.2009
Сообщений: 12
Провел на форуме: 129116
Репутация:
19
|
|
Решение под MFC
Проект реализован с использованием MFC
Вот собственно рабочий кусок кода:
PHP код:
// m_Dec - DDX переменная EDiT для DEC значений - iNT
// m_Hex - DDX переменная EDiT для HEX значений - CString
// m_Oct - DDX переменная EDiT для OCT значений - CString
// m_Bin - DDX переменная EDiT для BiN значений - CString
//
// OnChangeEdit1 - Отклик на изменение EDiT куда вводит DEC числа
// DecToBin - написанная мною функция для преобразования DEX в BiN
void CCodeDlg::OnChangeEdit1()
{
UpdateData(true);
m_Hex.Format("0x%08x", m_Dec );
m_Oct.Format("%o", m_Dec );
DecToBin(m_Dec);
UpdateData(false);
}
void CCodeDlg::DecToBin(int X)
{
int b = X;
int ots = 0;
m_Bin = "";
while(b>0)
{
if (ots == 8)
{
m_Bin += " ";
ots = 0;
}
if(b%2==1)
{
m_Bin += "1";
b/=2;
}
else
{
m_Bin += "0";
b/=2;
}
ots++;
}
m_Bin.MakeReverse();
}
Скрин:
ТУТ исходник + собранный EXE
Последний раз редактировалось Suteki; 23.05.2009 в 17:15..
Причина: Перезалил скрин
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|