есть простейшая консольная программа: Code: #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; } помогите сделать ее на ГУИ чтобы ввод числа: Code: ( loop: printf("Vvedite chislo: "); scanf("%o", &i); ) вводился в текстбокс и по нажатию кнопки результаты: Code: 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); выводились на форме
Я точно не понял чем ГУИ вариант должен отличатся от консольного.Но возможно это так Code: #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; }
гуи вариант должен отличатся от консольного визуальным интерфейсом и если можно то по порядку ато я в ГУИ темный лес... отблагодарю как могу
Сначала немного недопонял что делает консольній вариант.Кажется вот то что надо Code: #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
у меня VC++ 2008, при компиляции ошибки, просто если можно выложите готовые исходники для студии, с меня +++, буду благодарен
Решение под 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