saltis77
-
Pranešimai
115 -
Užsiregistravo
-
Lankėsi
-
Atsiliepimai
0%
Turinio tipas
Forumas
Kalendorius
Parduotuvė
Akademija
Skelbimai
saltis77 Pranešimai
-
-
Sveiki, kaip reiktu konvertuoti Stream^ i string arba char, jei tai imanoma?
-
Dekui, bet yra pora klausimu. Mano kodas atrodo taip
private: System::Void įkeltiDuomenųFailąToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { IO::Stream^ myStream; OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog; openFileDialog1->InitialDirectory = "c:\\"; openFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; openFileDialog1->FilterIndex = 2; openFileDialog1->RestoreDirectory = true; if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK){ if ((myStream = openFileDialog1->OpenFile()) != nullptr){ //code myStream->Close(); } } }
Ir as noriu kad tas nuskaitytas failas butu naudojamas ivairiose funkcijose
SkaitytiB(kai); RasytiB(kai); richTextBox1->LoadFile("Rezultatai.txt", RichTextBoxStreamType::PlainText);
Kaip tai reiktu daryti? Kiek matau as nusiskaitau faila i myStream ir kaip ji siusti i skaitymo funkcijas?
-
Noriu skype premium. :)
-
Sveiki, kaip reiktu Visual Studio grafinėje aplinkoje padaryti kad paspaudus ant kazkokio mygtuko butu ismetamas langas, kuriame butu galima pasirinkti bet koki .txt faila (Duomenu faila) (Nezinau kaip cia tiksliai vaidinasi lyg failu dialogas). Visur internete ieskojau, bet nieko gero neradau. Buciau labai dekingas.
-
-
Paprastas sprendimas šitai situacijai. Nusipieši pilnavidurį keturkampį ir nusipieši pilnavidurį apskritimą juos palenki šonu ir sujungi. :)
Pilnavidurkis kvadrata paprasta, bet kaip del pilnavidurio apskritimo? ir ar jis tirai cia tiktu?
-
Explode?
Dekui, gal pabandysiu kazkiek aiskiau paklausti man reikia padaryti detalia, kurios ta arka (ar apskiritimas nezinau kaip pasakyti butu pilnaviduris) dabar jis yra tusciaviduris kaip tai reiktu padaryti? As paprasciausiai nusibreziau apskritima ir jo kampus sutriminau ir kazkas gavosi, beda ta kad pasirinkus conceptual uzpilda ar kaip cia pasakyti negaaunu tai ko reikia. Su kokia komanda ta arka brezti? (cia kur ta rodyklyte rodo i arka tai ta arka turi buti pilnavidure)
-
-
-
-
Čia pakankamai daug variantų surašyta, nors vienas turėtų veikti:
http://stackoverflow.com/questions/946813/c-cli-converting-from-systemstring-to-stdstring
Dekui, atradau tinkama, jei dar kam bus aktualu
System::String^ miestaskonvert = textBox1->Text; string miestas=msclr::interop::marshal_as<string >(miestaskonvert);
-
Nesupratau ką tu nori konvertuoti. Gal galėtum patikslinti?
Programoje turetu buti ivedami kazkoki tai duomenys is textbox. Pvz Miestas ir tarifas. Man reiktu kad jie butu sukonvertuoti i string kad veliau galeciau siusti juos i funkcijas.
string miestas, tarifas; // kntamieji kurie turi buti ivedami is textobox bool yra = false; textBox1->Text = System::Convert::ToString(); // ivedamas miestas textBox2->Text = System::Convert::ToString(); // ivedamas tarifas if(tarifas == "d" || tarifas == "D" || tarifas == "diena"){ DSarasas(ab, sar, miestas, yra); } else if(tarifas == "n" || tarifas == "N" || tarifas == "naktis"){ NSarasas(ab, sar, miestas, yra); }
-
Sveiki, yra tokia beda kazkaip grafineje plinkoje reiktu padaryti kad butu konvertuojamas system string i string. Niekaip nepadarau, kiek internete ieskojau pavyzdziai man neveikia. Ka reiktu daryti?
System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) { string miestas, tarifas; bool yra = false; textBox1->Text = System::Convert::ToString(); // ??? if(tarifas == "d" || tarifas == "D" || tarifas == "diena"){ DSarasas(ab, sar, miestas, yra); } else if(tarifas == "n" || tarifas == "N" || tarifas == "naktis"){ NSarasas(ab, sar, miestas, yra); } sar->Rikiuoti();
-
[deleted] Pasidariau.
-
Ar yra kam nors buves toks erroras? Del kokiu priezasciu tai vyskat ir kodel? Kai bandau nuskaitytus pazymius deti i kita knteinerine klase sitas eroras pasirode.
while(fd.peek() != '\n' && !fd.eof()){ int d; fd >> d; S.SetMarks(d); cout << S.GetMark(i) << endl; i++; snew.SetStud(d); // klaida kai dedu cia }
visos klases koda deti nezinau ar yra prasme nes tenai praktiskai tas pats tik kad masyvas yra objekto ar kaip cia pasakyti (Student *Stu;)
-
Tu skaitai į paprastą statinį masyvą kurio dydis yra 5 (Student::M = 5). Tau reikėtų skaityti ir reikšmes įrašinėti į savo konteinerinę klasę Student.
void Read(School & snew){ string school, name, group; Student S; [...] while(!fd.eof()){ [...] while(fd.peek() != '\n' && !fd.eof()){ int d; fd >> d; S.SetMarks(d); } fd.ignore(); } fd.close(); }
Ir dar vienas patarimas: kintamųjų vardus pradėk iš mažosios raidės, nes pasvyzdžiui Student S atrodo kaip kažkokia konstanta, o int *Marks atrodo kad Marks būtų klasės pavadinimas.
Viliau, eilini karta dekoju. Padariau kaip liepiai gaunu kita errora ir debuginus issiaiskinau kas ne taip. Susitvarkiau berods. Buvau nepriskyres n(0) konstruktoriuje.
-
Galbut yra ideju?
-
Sveiki, neusitvarkau su problema. Ivykdzius programa gaunu toki errora
Nesuprantu kodel. Lyg masyvo dydi ir didinu, bet kazkokios nesamones su tuo fd >> Paz[kiek++]; vykstaUnhandled exception at 0x569521F8 (msvcp110d.dll) in ConsoleApplication1.exe: 0xC0000005: Access violation reading location 0x0000000D.class Student{ public: static const int M = 5; private: string school, name, group; int *Marks; // dynamic array of student marks int nmax; // max size of array int n; // current size of array void IncreaseCapasity(int kiek); public: Student(int nmax = 0); ~Student(); void SetMarks(int mark); void SetSchool(string school); void SetName(string name); void SetGroup(string group); int GetMark(int i){return Marks[i];} string GetSchool(){return school;} string GetName(){return name;} string GetGroup(){return group;} int GetN(){return n;} }; Student::Student(int nmax):Marks(NULL), n(n), nmax(nmax){ if(nmax > 0){ Marks = new int[nmax]; } } Student::~Student(){ if(Marks){ delete [] Marks; Marks = NULL; } } void Student::IncreaseCapasity(int kiek){ if(kiek > nmax){ // if array increasing int *SNew = new int [kiek]; for(int i=0; i<n; i++) SNew[i] = Marks[i]; delete [] Marks; Marks = SNew; nmax = kiek; }if(kiek < nmax){ // if array decreasing int *SNew = new int [kiek]; for(int i=0; i<kiek; i++) SNew[i] = Marks[i]; delete [] Marks; Marks = SNew; n = nmax = kiek; } } void Student::SetMarks(int mark){ if(n == nmax) IncreaseCapasity(n + M); Marks[n] = mark; n++; } void Student::SetSchool(string school){ this->school = school; } void Student::SetName(string name){ this->name = name; } void Student::SetGroup(string group){ this->group = group; }
Nujauciu kad metodas IncreaseCapasity gali buti klaidingas, bet tiksliai nezinau
mano skaitymo funkcija
void Read(School & snew){ string school, name, group; Student S; ifstream fd(CD); getline(fd, school, ';'); fd >> ws; S.SetSchool(school); cout << S.GetSchool() << endl; while(!fd.eof()){ getline(fd, name, ','); fd >> ws; getline(fd, group, ' '); int Paz[student::M]; int kiek = 0; while(fd.peek() != '\n' && !fd.eof()){ fd >> Paz[kiek++]; // sitoje vietoje uzkomentavus erroras nyksta } fd.ignore(); } fd.close(); }
Greiciausiai cia nera dididinama masyvo dydis kiek suprantu, bet kodel?
-
Sveiki, dirbant GUI aplinkoje iskilo problema. Konsoleje viskas idealiai veiki bet bandant perkelti i grafine aplinka gavau toki errora. Bedos greiciausiai su sitomis funkcijomis, arba todel kad naudojau dinamine atminti. Ar kazkas jums yra buve panasaus ir kaip susitvarket?
/** Įvedami matricos dydžiai @param Kub - bus saugomi įvesti duomenys*/ void IvDuomenys(Kubas & Kub){ int x, y; cin >> x; cin >> y; Kub.DetiXY(x+2, y+2); } /** Sugeneruoja kūbelių spalvas @param Kub - matricos dydis @param Kubeliai - konteineris, kur saugomos kūbelių spalvos @param Test - pagalbinis objektas @param Test2 - pagalbinis objektas @param Spal[] - spalvų masyvas*/ void KubuGeneratorius(Kubas Kub, Kubai & Kubeliai, Kubai & Test, Kubai & Test2, string Spal[]){ srand(time(NULL)); int sp; Kubeliai.KeistiDydi(Kub.ImtiX()); // dinamine atmintis keiciami dydziai Test.KeistiDydi(Kub.ImtiX()); Test2.KeistiDydi(Kub.ImtiX()); for(int i=0; i<Kub.ImtiX(); i++){ Kubeliai[i].KeistiDydi(Kub.ImtiY()); Test[i].KeistiDydi(Kub.ImtiY()); Test2[i].KeistiDydi(Kub.ImtiY()); } for(int i=1; i<Kub.ImtiX()-1; i++){ for(int j=1; j<Kub.ImtiY()-1; j++){ for(int k=0; k<6; k++){ sp = rand() % 3; Kubeliai.DetiSP(i, j, k, Spal[sp]); Test.DetiSP(i, j, k, Spal[sp]); Test2.DetiSP(i, j, k, Spal[sp]); } } } }
-
Taip neturi tikti, nes man reikia didziausio kibelio grupes koordinaciu (ji apsiskaiciuoju Max f-jije) todel si pasiulyta modifikacija netiktu.
-
ID turi priskirti ir langeliams, ir suskaičiuotam maksimumui. Tada, radus maksimalią grupę, belieką atspausdinti langelius, kurie turi maksimalios grupės ID.
As neturiu maksimalios langeliu grupes koordinaciu, todel taip padaryti negaliu, nes Funkcija Max as iskvieciu funkcijoje Kviesti. As gaunu visai kitokias koordinates. Be to praeidamas visa matrica as ja uzpildau
Test.DetiSP(i, j, p, "-");
(cia kad netikrintu dar karta tu langeliu) tai nelabai suvokiu kaip galima dar karta uzpildyti 1...9 ir t.t. Suprantu tavo ideja kad kiekviena grupe kazkokiu vis kitokiu simboliu nori uzpildyti ir tada skaiciuoti tu simboliu kieki, bet mano atveju (mano kode) to padaryti negalima. galiu tik max reiksmei prisikirti kazkoki tai simboli, bet langeliams ne.
-
Net jei ir maksimumą skaičiuoji pereidinėdamas pačią matricą, gali langeliams prisiskyrinėti ID. Tada tiesiog saugai, koks buvo maksimumas ir koks ID tam maksimumui. Lengelių atspausdinimas išlieka toks pat.
Tada ID priskirciau paciam maksimumui o ne langeliams. Visas grazintas reiksmes is void kviesti as saugau cia
if(kiekis!=0){ Maxi[ind].Deti(kiekis, Spal[sp]); ind++; }
Jei kazkoki ID meginciau priskirinet as ji priskiriciau tam kiekiui, bet man reikia langelio koordinaciu. Nebent kazka ne taip supratau ka nori pasakyti.
-
Dekui uz atsakyma, bet greiciausiai tavo nurodytas budas nebus tinkamas man, nes as Max'imum skaiciuoju visai kitoje funkcijoje.
void Kviesti(Kubas Kub, Kubai & Test, Kubai & Kubeliai, int p, int & kiekis, int & max, string & maxspalva, Maximumas Maxi[], int & ind, Koordinates Ko[], int & sk){ string Spal[3] = {"z", "r", "g"}; for(int sp=0; sp < 3; sp++){ for(int i=1; i<Kub.ImtiX()-1; i++){ for(int j = 1; j < Kub.ImtiY()-1; j++){ Eiti(Test, Kubeliai, i, j, p, Spal[sp], kiekis, Ko, sk); Max(kiekis, max, maxspalva, Spal, sp, Maxi, ind, i, j, Ko, sk); } } } } bool Eiti(Kubai & Test, Kubai & Kubeliai, int i, int j, int p, string spalva, int & kiekis, Koordinates Ko[], int & sk){ int tt = 0; // kaimyno numeris bool yra = false; if(Test.ImtiReiksme(i, j).ImtiSiena(p) == spalva){ Test.DetiSP(i, j, p, "-"); kiekis++; while(!yra && tt < 4 ){ // judejimas i = i + Test.ImtiEil(tt); j = j + Test.ImtiStu(tt++); if(Test.ImtiReiksme(i, j).ImtiSiena(p) == spalva){ // kelias Eiti(Test, Kubeliai, i, j, p, spalva, kiekis, Ko, sk); } } } return yra; } void Max(int & kiekis, int & max, string & s, string Spal[], int sp, Maximumas Maxi[], int & ind, int i, int j, Koordinates Ko[], int & sk){ if(kiekis!=0){ Maxi[ind].Deti(kiekis, Spal[sp]); ind++; } if(max < kiekis){ max = kiekis; kiekis = 0; s = Spal[sp]; } else kiekis = 0; }
-
Sveiki, terkime turiu matrica kurioje yra daug skirtingu spalvu kvadratu ir kai kurie vienodos spalvos lieciasi sonais. Apsiskaiciavau kieki kiek vienodos spalvos kubeliu kurie lieciasi sonais yra (kiekis). Dabar noreciau issaugoti kubeliu koordinates. Ar kazkas turite bent ideja kaip tai reiktu daryti? Pats galvoju kad reiktu daryti taip:
eiti per ta matrica ir fiksuoti pasirinktos spalvos pvz raudonos spalvos kubelius.
daryti if'a jei kubelis lieciasi su kitu kubeliu ir tas kitas kubelis liecasi dar su kitu mazinti kiekis-- (taip kol kiekis bus lygus 0)
jei if'as tenkinamas i kazkoki masyva ar dar kazkur saugoti tas koordinates.
C++ Kodo neaiskumas
Programuotojų kampas
Sukurta
Sveiki, teste suklydau klausima su siuo kodu. Reikia pasirinkti viena is variantu kuri skaicu seka bus teisinga, kai bus kreipiamasi i funkcija TrasavimuiV (70). As pasirinkau 2 varianta, bet jis netiko...
Sąraše : 56 15 20 78 3 55 78 5 99 3 8 8. Kreipinys toks: TrasavimuiV (70);
1. 56 15 20 78 3 55 5 3 8 8
2. 56 15 20 3 55 5 3 8 8
3. 56 15 20 78 3 55 78 5 99 3 8 8