Ich habe mit Struct ein Problem
-
char kann nur einen Buchstaben speichern.
Stefan311 schrieb:
Darüber Meckert mein Compiler ja nicht. Außerdem seit wann?
Es war noch NIE anders.

-
Wirklich und dann wird mir einiges klar warum immer wenn ich ein Prog geschrieben habe was schief ging . Mann hab ich eine Wiessenlücke .

Also müsste ich in der Stuct folgendes machen:
struct strasse { int Limit; char name[]; char vname[]; char name2[]; char name3[]; }; strasse A2; A2.Limit=120;//Hierzu gelten die compiler Fehler A2.name="A2";//Hierzu gelten die compiler Fehler A2.vname="Autobahn 2";//Hierzu gelten die compiler Fehler strasse B3; B3.Limit=80;//Hierzu gelten die compiler Fehler B3.name="B3";//Hierzu gelten die compiler Fehler B3.vname="Bundesstraße";//Hierzu gelten die compiler FehlerTrodzdem mekert er rum selber Fehler. Das mit dem punkt.
Wie gut das ich im moment Volkards kurs durcharbeite.
-
Du solltest dich nochmal ausgiebig mit char* und char Arrays beschäftigen, bevor du dich den Strukturen zuwendest.
-
Ok. Vermutlich hab ich wieder mal alles von chars verpeilt.
Ich melde mich nochmal wenn ich mer Wissenzkapazität habe.
-
ich hab den fehler gefunden
struct strasse { int Limit; char name[]; char vname[]; char name2[]; char name3[]; };du kannst nicht einfach zwei klammern hinter die variablen setzen. Der Computer kann ja nicht unendlich Arbeitsspeicher reservieren. deine Schreibweise ist nur in diesem fall erlaubt:
char vorname[]="Leon"; // der Compiler zählt automatisch wie groß das Array sein wirdSo außerdem wird ich statt char lieber string nehmen (string.h nicht vergessen zu includieren)
Sollte es dann immernoch nicht funktionieren, würde ich einzelne Teilbereiche auskommentieren:
wenn du also folgendes compilieren willst:
struct strasse { int Limit; char name[]; char vname[]; char name2[]; char name3[]; }; /*strasse A2; A2.Limit=120;//Hierzu gelten die compiler Fehler A2.name='A2';//Hierzu gelten die compiler Fehler A2.vname='Autobahn 2';//Hierzu gelten die compiler Fehler strasse B3; B3.Limit=80;//Hierzu gelten die compiler Fehler B3.name='B3';//Hierzu gelten die compiler Fehler B3.vname='Bundesstraße';//Hierzu gelten die compiler Fehler*/kannst du sehen ob der compiler jetzt schon nen fehler anzeigt oder das programm bis dahin läuft. Außerdem kann ich dir nur empfehlen dich ein bisschen klarer auszudrücken: Wie sieht der Gesamtcode aus? Was soll mit der structur noch gemacht werden.
-
Leon++ schrieb:
So außerdem wird ich statt char lieber string nehmen (string.h nicht vergessen zu includieren)
Wenn dann std::string aus string.
-
Das Problem ist mit string hab ich noch nie was gemacht. Ich dachte
es gibt nur den char. Was ist der unterschied?
-
Ok ich mach ma was anderes:
#include <iostream> struct test { int sek; int m; }; test zeit; zeit.sek=39; zeit.m=10; int main() { cout<<"Zeit: "<<zeit.sek<<":"<<zeit.m; cin.get(); return 0; }So und nun hab ich immer noch das problem mit dem punkt warum?

-
Das muss in main rein!
-
Wenn dann std::string aus string.
Ich benutze eigentlich immer using namespace std;
-
Danke. Das war der Fehler. Man merkt ich bin nicht besonders gut.

Ich vergess immer schnell alles wenn ich daran denke das ich schon
seit letztes ja sachen programmiere.
-
Hallo
Du solltest wirklich std::string benutzen. Der Umgang damit ist wirklich selbsterklärend und nicht halb so verwirrend wie der Unmgang mit char[] oder char*.(ist natürlich nur meine persönliche Meinung, aber ich denke, dass die einige hier teilen)
chrische
-
ne das war noch nicht alles
test zeit; zeit.sek=39; zeit.m=10;muss in den main teil!
-
Danke. Das war der Fehler. Man merkt ich bin nicht besonders gut. :( Ich vergess immer schnell alles wenn ich daran denke das ich schon seit letztes ja sachen programmiere. :(ich kann dir nur das buch "Magnum C++" empfehlen!
da kann man gut nachschlagen!
-
Leon++ schrieb:
Ich benutze eigentlich immer using namespace std;
Mit string.h ?

-
240 Beiträge und du weißt das nicht? std::string heißt das doch
und wenn man using namespace std; benutzt kann man den std::-scheiß einfach weglassen. --> Magnum C++ sag ich nur
-
Wenn er jetzt auf std::string umsteigt, umgeht er nur sein Verständnisproblem mit Zeigern und Arrays. IMHO sollte man erst solche Grundlagen beherrschen, bevor man der STL anfängt.
-
"Magnum C++" ist nicht empfehlenswert.
-
@Leon++
Wenn du string.h benutzt, brauchst du kein using namespace std; oder std::, da das ein veralteter Header ist, bei dem nichts in einem Namespace ist.
string ist der aktuelle Header, und in dem befindet sich nun mal alles im Namespace std.kann man den std::-scheiß einfach weglassen.
Wenn, dann ist eher using namespace std ein "scheiß".
Magnum C++ sag ich nur
Wenn da noch string.h empfohlen wird, Finger weg davon.
-
interpreter schrieb:
Wenn er jetzt auf std::string umsteigt, umgeht er nur sein Verständnisproblem mit Zeigern und Arrays. IMHO sollte man erst solche Grundlagen beherrschen, bevor man der STL anfängt.
Ja, seh ich auch so. Ich wollte nur sichergehen, dass wenn er strings benutzt, dann auch den neuen Header nimmt.