1 Востаннє редагувалося Chemist-i (23.03.2015 20:42:46)

Тема: Help

Якщо на Делфі можна прописати так (

var x:real;
begin
x:=strtofloat(edit1.text);
end;
end.
)

то як прописати в С++?

Chemist-i: Будь-ласка використовуйте для коду теґ [ code ]

##########
##PYTHON##
#########

2

Re: Help

1. Змініть назву на інформативну.
2. Поставте теги code (трикутні дужки над полем вводу допису).
3. В C++ немає ніяких "edit1.text", зате вони є в VCL - бібліотекою, що використовується в C++ Builder та Delphi. Вам зі збереженням VCL відповісти чи для іншої бібліотеки?

3 Востаннє редагувалося shabaranskij (22.03.2015 20:52:14)

Re: Help

3. Я знаю. З CLR.
Мене цікавить як прив'язати textBox.Text до x;

##########
##PYTHON##
#########

4 Востаннє редагувалося koala (22.03.2015 21:05:45)

Re: Help

Прив'язати - ніяк. Отримати значення типу з рухомою комою - можна.
textBox.Text має тип System.String. У цього типа є метод ToDouble. Цей метод повертає саме те, що вам треба:

double x = textBox.Text.ToDouble();

І напишіть на google.com та msdn.microsoft.com, щоб вас розбанили, а то зовсім погано програмувати буде.

5

Re: Help

Якщо вам не тяжко допоможіть мені переписати з Console Application на VCL Appcicapion таке (

#include <iostream>
#include <conio.h>
using namespace std;
int main () {
float x;
cout<<"Enter, x";
cin>>x;
for (float z=2; x<=99; z++)
cout<<x*z;
getch();
return 0 ;

}

)
з використанням richTextBox, textBox, Button

Chemist-i: Будь-ласка використовуйте для коду теґ [ code ]

##########
##PYTHON##
#########

6

Re: Help

Ваш код неправильний тому що х ніколи не змінюється тобто for (float z=2; x<=99; z++) цей цикл вічний
Я зробив на C++Builder XE7

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    float x=StrToFloat(Edit1->Text);
    for (float z=2; z<=99; z++)
        ListBox1->Items->Add(x*z);
}

Тут проект і працююча програма https://yadi.sk/d/Sr7DzBFYfSejh

7

Re: Help

По перше С++ чутливий до регістру букв, якщо  на Делфі можно написати strtofloat или STRTOFLOAT, а можно StRtFlOaT и все буде працювати, то в С++ трохи суворіше - можно тільки так StrToFloat. А цей рядок x:=strtofloat(edit1.text);, якщо Ви використовуете С++ Builder можно записати так... x=StrToFloat(Edit1->Text);

8 Востаннє редагувалося Chemist-i (23.03.2015 20:43:16)

Re: Help

так я щойно замітив що зробив помилки мало бути так (

#include <iostream>
#include <conio.h>
using namespace std;
int main () {
float x;
cout<<"Enter, x";
cin>>x;
for (float z=2; z<=99; z++) {
cout<<x*z; }
getch();
return 0 ;
}

).
Дякую.

Chemist-i: Будь-ласка використовуйте для коду теґ [ code ]

##########
##PYTHON##
#########

9

Re: Help

Але я використовую VS Express 2013. І StrToFloat там не діє.

##########
##PYTHON##
#########

10 Востаннє редагувалося Betterthanyou (23.03.2015 00:14:48)

Re: Help

shabaranskij написав:

Але я використовую VS Express 2013. І StrToFloat там не діє.

Аналог точно має бути, попробуйте так

string str = "0.5";
float a=atof(str.c_str());

11 Востаннє редагувалося koala (23.03.2015 00:14:59)

Re: Help

Ви для початку визначиться, на CLR вам треба чи на VCL. Бо доки ви обиратимете між wxWidgets та Qt, ніхто вам не зможе написати вашу програму на MFC, бо не знатиме, що вам потрібне WinAPI... чи WTL... а чи GTK+...

12

Re: Help

я ж писав що потрібно на  CLR. 

#include <iostream>
#include <conio.h>
using namespace std;
int main () {
float x;
cout<<"Enter, x";
cin>>x;
for (float z=2; z<=99; z++) {
cout<<x*z; }
getch();
return 0 ;
}

Chemist-i: Будь-ласка використовуйте для коду теґ [ code ]

##########
##PYTHON##
#########

13

Re: Help

Можливо ліпше буде якщо я напишу програму на Делфі а ви її перепишите на VS Express 2013 C++ CLR

##########
##PYTHON##
#########

14

Re: Help

shabaranskij написав:

я ж писав що потрібно на  CLR.

Тоді чим вас мій код не влаштовує?

15

Re: Help

так не буде працювати

double x = textBox.Text.ToDouble();

треба якось так так (не перевіряв)

auto convertible = dynamic_cast< IConvertible ^ >(textbox->Text)
auto x = convertible->ToDouble(CultureInfo::CurrentCulture);

16

Re: Help

shabaranskij написав:

я ж писав що потрібно на  CLR. 

#include <iostream>
#include <conio.h>
using namespace std;
int main () {
float x;
cout<<"Enter, x";
cin>>x;
for (float z=2; z<=99; z++) {
cout<<x*z; }
getch();
return 0 ;
}

це взагалі не с++/cli проект, а просто стандартний с++ причому консольний.

17

Re: Help

truesupport написав:
shabaranskij написав:

я ж писав що потрібно на  CLR. 

#include <iostream>
#include <conio.h>
using namespace std;
int main () {
float x;
cout<<"Enter, x";
cin>>x;
for (float z=2; z<=99; z++) {
cout<<x*z; }
getch();
return 0 ;
}

це взагалі не с++/cli проект, а просто стандартний с++ причому консольний.


Так я знаю, просто мені потрібно переписати цю програму на VCL Forms. Нічого якось розберусь.

##########
##PYTHON##
#########

18

Re: Help

Вибачте CLR, завжди плутаю

##########
##PYTHON##
#########