Frage zu Arrays
-
An theta
Danke für die Info.
Habe den Code wie folgt geändert, getestet und läuft.
using namespace System; using namespace System::Collections::Generic; ref struct Adresse { property String^ Strasse; property int Postleitzahl; property String^ Ort; }; int main(array<System::String ^> ^args) { auto zuhause = gcnew Adresse; zuhause->Strasse = "Time Square 57"; zuhause->Postleitzahl = 10036; zuhause->Ort = "New York City"; auto adressen = gcnew List<Adresse^>; adressen->Add(zuhause); while (true) { Console::Write("Neue Adresse hinzufügen? Ja ('j') oder Nein ('n'): "); auto hinzufuegenJaNein = Console::ReadLine(); if (hinzufuegenJaNein->StartsWith("j")) { auto neueAdresse = gcnew Adresse; Console::Write("Gib die Strasse ein: "); neueAdresse->Strasse = Console::ReadLine(); Console::Write("Gib die Postleitzahl ein (nur Zahlen erlaubt): "); auto postleitzahlEingabe = Console::ReadLine(); auto postleitzahl = 0; if (int::TryParse(postleitzahlEingabe, postleitzahl)) { neueAdresse->Postleitzahl = postleitzahl; } else { Console::WriteLine("Die Eingabe wurde nicht akzeptiert, die Adresse wird nicht hinzugefügt"); continue; } Console::Write("Gib den Ort ein: "); neueAdresse->Ort = Console::ReadLine(); adressen->Add(neueAdresse); } else if (hinzufuegenJaNein->StartsWith("n")) { break; } else { Console::WriteLine("Die Eingabe wurde nicht akzeptiert, bitte erneut eingeben"); } } /* Die Zeilen in diesem Kommentar sind falsch: for each (auto adresse in adressen) { Console::WriteLine("{0}, {1} {2}", adresse->Strasse, adresse->Postleitzahl, adresse->Ort); } Die Zeilen gegen diese ausgetauscht: */ for each (Adresse^ adresse in adressen) { Console::WriteLine("{0}, {1} {2}", adresse->Strasse, adresse->Postleitzahl, adresse->Ort); } /* Die Zeilen gehen auch: for(int i=0; i<adressen->Count; ++i) Console::WriteLine(i+" {0}, {1} {2}", adressen[i]->Strasse, adressen[i]->Postleitzahl, adressen[i]->Ort); */ Console::WriteLine(""); Console::WriteLine("Eine Taste betätigen um zu beenden."); Console::ReadLine(); return 0; }
An Swordfish
Will mit dir das Beleidigungsniveau nicht weiter fahren.
Nur eins dazu, jeder fängt mal klein an und du gehst leider direkt von einem viel zu großen Wissenstand aus.
Darum kann ich nur sagen das thetas Erklärungen viel einfacher zu verstehen sind.
Das ist der feine Unterschied zwischen euch beiden.
Mag sein das du helfen möchtest, ist auch gut so.
Aber dann passe bitte deine Wortwahl dem Niveau an.
Damit auch anderen eine bessere Change gegeben werden kann, ein Erfolg zu sehen.Ich verstehe auch deine Ansage zu C und C++.
Habe auch in C programmiert, aber in eclipse.
Und nur kleine Projekte.
Mag sein das der Übergang zu C++ noch zu früh ist.
Aber lass es mich doch einfach versuchen.
Wenn ich es nicht schaffe, werde ich mich weiter nur mit C beschäftigen.Und ja, ich lese nicht nur Bücher.
Also lasse uns bitte unser Streitigkeiten vergessen und neu starten OK?
-
Cospieler schrieb:
Habe auch in C programmiert, aber in eclipse.
Mag sein das der Übergang zu C++ noch zu früh ist.
Wenn ich es nicht schaffe, werde ich mich weiter nur mit C beschäftigen.Diese Aussagen erwecken bei mir den Eindruck, dass du glaubst, man muss zuerst C programmieren lernen, um sich dann an C++ heranwagen zu können/dürfen.
Dies halte ich für grundfalsch - C ist nicht C++, auch wenn C und C++ Überschneidungen haben und eine sehr gute Interoperabilität aufweisen. Aber der moderne Stil mit C++ zu programmieren, deckt sich überhaupt nicht mit den Dingen, die man in C üblicherweise anwendet (umgekehrt auch).
Acuh die Annahme - von der ich nicht weiss, ob du sie auch getroffen hast -, man müsse in C++ zuerst manuelle Speicherverwaltung lernen, mit C-Arrays und C-Strings herumhantieren, um später gut C++ programmieren zu können, ist ein anderer, weit verbreiteter Irrtum. Das Gegenteil ist der Fall!
Soviel zu C und C++. Dass du in den zitierten Aussagen C++ und nicht C++/CLI erwähnst, lassen mich zudem annehmen, dass du C++ und C++/CLI für dieselbe Sprache hältst. Das ist keineswegs der Fall. Der Unterschied zwischen C++ und C++/CLI ist sogar noch viel grösser als zwischen C und C++. Und auch hier ist eine sehr gute und gewünschte Interoperabilität vorhanden.
So, und zum Lernen der Programmierung ansich denke ich, dass man es sich einfacher oder schwieriger machen kann. Du wählst eher die harte Tour, weil die Umgebung rund um C++/CLI einfach wahnsinnig viele Fallstricke bietet, funktioniert aber auch - im besten Fall lernt man noch viele zusätzliche Dinge, weil man länger im "Sumpf" rumwaten muss.
-
An Theta
Danke für deine Meinung.
Also, warum ich mich damals für C entschieden hatte, war das ich in manch anderen Foren, gelesen hatte das man in C anfangen sollte bevor man in C++ einsteigt.
Aber da hat jeder seine eigene Meinung.
Daraufhin habe ich einfach mal mit C angefangen mit kleinen Projekten.
Aber jetzt interessiere ich mich halt für C++/CLI und lese auch Bücher darüber.
Aber manches ist nicht so gut beschrieben und darum kam ich in dieses Forum.Ja habe schon verstanden das C++ nicht gleich C++/CLI ist und meinte eigentlich auch C++/CLI nicht C++ im der letzten Nachricht.
Aber die Ausmaße wie sicher tatsächlich die Codesprachen sind.
Kann ich mir noch kein Bild machen, nur von Hören sagen.
Darum will ich mir mein eigenes Bild machen und habe einfach mal angefangen in C++/CLI.Auch mit Arrays habe ich schon einige Erfahrungen gemacht.
-
-
Hallo zusammen,
kann man den Code auch so anpassen des er ohne "auto" auskommt?
Aber das gleiche Ergebnis bringt.
Wenn ja, wie?
-
Dadurch, dass du die Frage wiederholst, wird die richtige Antwort auch keine andere. Die richtige Antwort wurde schon mehrmals vor vielen Monaten gegeben.
-
Statt auto einen konkreten Typ angeben, ist schon klar.
Aber int und String kann ich doch nicht mischen.
Ohne weiteres.
-
1. Wer sagt etwas von Mischen? Den richtigen Typen! Es gibt nur einen.
2. Postleitzahl als int ist sowieso Schrott. Frag mal die Leute in 01067 Dresden
-
Das was du sagt ist schon klar. Daufhin möchte ich auch nicht raus.
Versuch es anderes zu erklären.
Ich möchte eine Zahl und String speichern.
z.B. in dieser form:
using namespace System; using namespace System::Collections::Generic; ref struct Datenpacket { property String^ Name; property int Nummer; }; int main(array<System::String ^> ^args) { auto Daten = gcnew Datenpacket; Daten->Name = "Paul"; Daten->Nummer = 1; auto Datenpackete = gcnew List<Datenpacket^>; Datenpackete->Add(zuhause); . . . usw. . . .
so und jetzt ohne "auto"
-
Was ist denn jeweils der Typ von
gcnew Datenpacket
undgcnew List<Datenpacket^>
?
-
Ja so stehe ich auch davor.
Der vorherige Code der auch im vollen Umfang die Adressen hatte lief ja auch so.
Dieser neue Code ist nur eine abgewandelte form davon, weil es mir nur darum ging wie ich den Code umpusseln muss um ohne auto auszukommen.
Kann du mir ein Beispiel geben wie ich es besser machen kann?
So das ich ohne auto auskomme.Nur eins zu List<Datenpacket^> dort ist int Wert und string Wert enthalten.
So meine ich es verstanden zu haben.
Ansonsten bitte ich um Aufklärung.
-
Ich habe nicht den Eindruck, dass dir eine Korrektur des Codes helfen würde. Beziehungsweise sie würde dir helfen, aber sie würde uns nicht helfen, denn du wärst sofort wieder hier mit exakt dem gleichen Problem, weil du nichts gelernt hättest. Ich stelle folgendes fest:
- Du hast die Frage vor knapp 2 Monaten gestellt.
- Du hast damals gesagt, du wollest C++/CLI mit .NET lernen, obwohl dir davon dringend abgeraten wurde.
In den zwei Monaten hast du:
- Absolut 0 Lernfortschritt gemacht. Die Frage die du hier stellst ist eine super-simple Anfängerfrage, die du nach 2 Monaten angeblichen Lernens immer noch hast.
- Sämtliche Ratschläge, die dir gegeben wurden, komplett ignoriert, außer sie waren kopierbarer Beispielcode. Selbst den kopierbaren Beispielcode hast du nicht zum Laufen gebracht.
- Nicht einmal gelernt zu googeln. Ich spreche nicht C++/CLI mit .NET. Trotzdem könnte ich dir die richtigen Typen nennen, mit all den komischen C++/CLI-Spezialitäten, von denen ich eigentlich keine Ahnung habe. Wie habe ich das wohl gemacht?
Folgerung: Jegliche Hilfestellung führt zu nichts. Man muss zu lernen bereit sein, damit man lernen kann.