[C++] string to label

0

Witam
Mam pytanko, mianowicie jak umieścić ciąg znaków typu string w label ? taki kod niestety nie dziala


 template <class T> std::string ToString(const T& t) 
                    { 
                         std::ostringstream oss; 
                          oss << t; 
                        return oss.str(); 
                    } 
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

                int licznik1 = toInt(textBox1->Text);
                int licznik2 = toInt(textBox1->Text);
                int mianownik1 = toInt(textBox1->Text);
                int mianownik2 = toInt(textBox1->Text);

                CRationalNum* klasa = new CRationalNum(5,6);
                double a = klasa->ulamek_dziesietny();

                String mojtekst = ToString<double>(a);
                this->label6->Text =  mojtekst;
0

Po kiego grzyba robisz konwersję do std::string?
Skoro masz .net-a to używaj jego metod do konwersji. Dokumentacja .net naprawdę nie gryzie.

0

skorzystałem z Konwersje int na string i string na int ,

 ostringstream ss;
ss << a;
string str = ss.str();

i także występuje błąd
System::Windows::Forms::Control::Text::set(System::String ^)' : cannot convert parameter 1 from 'std::string' to 'System::String ^"

1
double a=Double::Parse("123.456");
label6->Text = a.ToString();

Jak szukasz coś w sieci to szukaj nie C++ tylko C++/CLI

0

ok wielkie dzięki :) już mi się miesza wszystko z C# i Java i zwyklego C. a niestety intellisense mi nie działa :/ Od razu się spytam by nie zakładać nowego tematu. Czemu dla danych:
licznik1 = 1;
licznik2 = 1;
mianownik1 = 2;
mianownik2 = 3;
wynik to 6/9 ? xd Nie mogę znaleźć błedu mógłby ktoś zerknąć ?
z klasy CRationalNum :

public:
         CRationalNum(){
            numerator = 0;
            denominator = 1;
        }

         CRationalNum(int licznik, int mianownik){
            numerator = licznik ; 
            if (mianownik == 0 ) mianownik = 1; 
            denominator = mianownik;
        }

        CRationalNum(const CRationalNum &ulamek){
            numerator = ulamek.numerator;
            denominator = ulamek.denominator;
        }

int getNumerator(){
            return this->numerator;
        }

        int getDenominator(){
            return this->denominator;
        }

        CRationalNum operator+(const CRationalNum &a){

            return CRationalNum( this->numerator*a.denominator + a.numerator*denominator, this->denominator * a.denominator );
        } 

Z Form :

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {

                int licznik1 = int::Parse(textBox1->Text);
                int licznik2 = int::Parse(textBox4->Text);
                int mianownik1 = int::Parse(textBox2->Text);
                int mianownik2 = int::Parse(textBox3->Text);

                CRationalNum* klasa = new CRationalNum(0,1);
                CRationalNum* klasa2 = new CRationalNum(licznik1,mianownik2);
                CRationalNum* klasa3 = new CRationalNum(licznik2,mianownik2);
                float a = klasa->ulamek_dziesietny();

                *klasa = *klasa2 + *klasa3; 

                    int tmp = klasa->getNumerator();
                    int tmp2 = klasa->getDenominator();
                MessageBox::Show( tmp.ToString());
                MessageBox::Show( tmp2.ToString()); 
1

cannot convert parameter 1 from 'std::string' to 'System::String ^"

#include <msclr/marshal_cppstd.h>
using namespace msclr::interop;

...
System::String ^s1 = L"Ala ma kota";
std::string s2 = marshal_as<std::string>(s1);
System::String ^s3 = marshal_as<System::String^>(s2);

ale lepiej używać wstring a nie string.

0

Zapomniałeś podać konstruktor.

0

gdy próbuje dołączyć biblioteke

#include <msclr/marshal_cppstd.h> 

wyskakuje mi masa błędów typu :

Error   4   error C2872: 'IServiceProvider' : ambiguous symbol
0

Najpierw wszystkie #include, dopiero potem jakiekolwiek using namespace.

0

no i tak jest, a mimo to wyskakuje błąd. Zatem czemu tak sie dzieje ?

 #include "TSearch.h"
#include "TModification.h"
#include <fstream> //import biblioteki fstream
#include <stdio.h> //import biblioteki stdio.h
#include "Stop.h"
#include <list>
#include <string>
#include <msclr/marshal_cppstd.h> 

namespace Mateusz {

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    using namespace msclr::interop;

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0