also ich weiss das in jedem buch steht das (in diesem bsp.) die 3 nicht dazu gehört das hat mein prof in den ersten vorlesungen auch immer gesagt.
irgendwann gegen ende, meinte der das es doch irgendwie dazu gehört, da dort immer die binäre null liegt... ich mein der mann war jahre auf dem MIT, also doch recht glaubwürdig...
aber eben nach nem test mit sizeof musste ich festellen das die binäre null doch ein eigenes feldelemt braucht... find ich net so toll von meinem prof:mad:
Beiträge von schläfer
-
-
Zitat
(Diskutieren sinnlos, ich habe recht. Akzeptiers oder werde ignoriert.)
sry, aber das gillt auch für dich ... mein prof ist mir da doch glaubwürdiger;) -
ist ja egal wie der code aussieht, sollte nur zum testen sein ...
und wo greif ich bitte auf das 3 element zu? die ausgabe? wieso sollte das ein problem sein?
das 3 element ist aber trotzdem bestandteil des feldes, da steht z.b. die binäre null drin... und laut meinem prof. darf man auf das letzte element problemlos schreiben, nur ist es recht sinnlos, da dann die ausgabe net mehr richtig geht...
nur ist die frage wieso es sich der eine compiler erlaubt und der andere net... wobei eigentlich will ich nur wissen was den STANDARD entspricht, also ob mein compiler richtig arbeitet oder der meines kumpels.
denn ich hab auch noch folgendes problem:
char chf[]={'A','B','C'};
hier habe ich z.b. auch keine binäre null, d.h. es wird solange ausgegeben, bis mal zufällig im speicher ne null ist...bei meinem kumpel gehts natürlich wieder
ich muss da folgendes schreiben:
char chf[]={'A', 'B', 'C', '\0'};
welcher compiler arbeitet hier nun richtig? -
hi, also ich hab mal nen test prog und bitte es mal den einen oder anderen bei sich auszuführen ...
es geht hier um das "temp" feld, da ist es so dass da nie eine binäre null reingeschrieben wird, und bei nem kumpel trotzdem eine drin ist ... bei mir z.b. (so wie es sein muss) nciht ...
weiss da einer wie das gehen kann, ist es villeicht der compiler der das bei meinem kumpel erledigt?
Code
Alles anzeigen#include <iostream> using namespace std; void main() { char feld[]="ABC"; char temp[3]; for (int i=0; i<3; i++) { *(temp+i)=*(feld+i); } for (int i2=0; i2<3; i2++) { if(i2==2) { *(feld+i2)=*temp; } else { *(feld+i2)=*(temp+(i2+1)); } } cout << *(feld+3) << " --- " << feld << endl; cout << *(temp+3) << " --- " << temp << endl; }
-
also ich wusste nicht genau wo ich es hinschreiben sollte...
ich hätte da ne frage zu rechtseindeutig/linkseindeutig, hoffe es kann jemand helfen.
z.b. red (R von A nach B):
heisst ja das von keinem element von A mehr als ein pfeil (in einer abb.) nach B zeigen darf.
gilt diese aussage für alle elemente von A, oder für (min.) ein element von A?
z.b. A={1,2,3}, B={a,b,c}
R={(1,a),(2,b)} ist das bereits red, oder muss noch (3,c) dazu um red zu sein? -
ich muss die variable so klein wie möglich wählen...
da ich nur zahlen von -115 bis 120 habe, sollte ich wohl ne char nehmen (-127 bis 127) ...
ich weiss eben nur nich ob scanf etwas in einem c++ code zu suchen hat...
ich denk mal, dass c++ nicht schlechter wie c sein, also das es auch da ne möglichkeit gibt, beim einlesen zu casten...nur scheints laut google nicht so zu sein. -
nuja^^
das ist dann noch mehr "umweg" alt mit integer variante...
habs aber schon fast geahnt, dass es so nicht läuft ... muss halt scanf bleiben:/ -
tag, ich wieder:engel:
hab noch ne frage, und stelle sie direkt mal hier, hoffe das noch genug reinschauen:)
also ich such ein ersatz für scanf in c++... ich will damit was beim einlesen casten, hier das bsp:
nun ist ja scanf nicht wirklich c++, wie kann ich das da verwirklichen?
funktioniert da leider net...
€dit: also genauergesagt such ich einen ersatz für den befehl scanf, den trick mit der int temp kenne ich schon ( oder ist das die einzigste möglichkeit in c++?
-
Florian: danke dir, dass ist exakt das was ich brauche
ich hab das schon so ähnlich probiert, nur eben ohne einen reinterpret cast ... war wohl etwas spät, da der compiler mir genau diese meldung gebracht hat:hewa:
Vevusio: diese methode habe ich mir eben gegoogelt, die geht allerdings etwas anders, und ist etwas umständlich im vergleich zu atoi...
man muss immer von vorne mit dem stellenwert multiplizieren, und immer '0' abziehen, z.b.:
int x=((feld[0]-'0')*10) + ((feld[1]-'0')*1) oder
int x=((feld[0]-'0')*100) + ((feld[1]-'0')*10) + ((feld[2]-'0')*1) usw. -
genau^^
aber casten geht da leider net, und atoi auch net -
hallo,
also ich hab nen unsigned char feld, und will diesen in einen integer umwandeln (mit oder ohne vorzeichen, das ist egal)...
wichtig ist, dass das char feld zweistellig ist, d.h. es sind zahlen von 0-99 dabei.
die funktion atoi habe ich schon probiert, nur leider geht die bei unsigned char nicht
hat mir jemand da nen tipp wie ich es doch hinbekomme?