Programmieraufgabe
-
@sothis_ könntest du mir mal dein getcmd() erklären?
ich hab noch nicht ganz umrissen was das alles prüft?
wie wird getline() eingesetzt? was ist der 2. parameter. soll dort hinein geschriebden werden wie lang der input war? oder wie groß er maximal sein darf? ich denk mal 2tens ist richtig?
-
tweenki schrieb:
@sothis_ könntest du mir mal dein getcmd() erklären?
ich hab noch nicht ganz umrissen was das alles prüft?
wie wird getline() eingesetzt? was ist der 2. parameter. soll dort hinein geschriebden werden wie lang der input war? oder wie groß er maximal sein darf? ich denk mal 2tens ist richtig?oh, das war auf die schnelle geschrieben
getline ist eine GNU erweiterung, deswegen bin ich nicht sicher ob das auch in der msvcrt in windows vorhanden ist.
int getcmd() { char* inbuf = NULL; int temp; size_t n = 0; getline(&inbuf, &n, stdin);
wenn inbuf NULL ist, alloziert getline() mit malloc soviel speicher wie nötig, wenn inbuf nicht NULL ist, passt getline() den puffer mit realloc() an. nach n wird, wie du vermutet hast, die anzahl der zeichen ohne den newline character geschrieben wenn n vorher 0 war, wenn n > 0 dann liest getline genau soviel zeichen vom stream. der dritte parameter ist selbsterklärend
if (n == 0) { free(inbuf); return -2; }
da war ich mir nicht sicher, ob dieser fall überhaupt mit getline eintreten kann, ist also nur sicherheitshalber da
if ((n > 3) && (!memcmp(inbuf, "quit", 4))) { free(inbuf); return -1; }
beenden wenn "quit" eingegeben wurde
if ((inbuf[0] < 0x30) || (inbuf[0] > 0x39)) { free(inbuf); return -3; }
-3 zurückgeben wenn das erste zeichen keine zahl ist
temp = inbuf[0] & 0xF; free(inbuf); return temp; }
ansonsten eben diese zahl zurückgeben
-
andy p. schrieb:
sothis_ schrieb:
hier schonmal der code der teil 1 der aufgabe erledigen könnte
vielleicht erbarmen sich noch andere die weiteren teile zu ergänzen, lol
const char* cities[10] = { "Aachen", "Berlin", "Bremen", "Dresden", "Essen", "Hannover", "Leipzig", "Muenchen", "Osnabrueck", "Stuttgart" }; ...
bin mir nicht sicher aber solltest du sicherheitshalber nicht noch eine 0 als letztes element in das array schreiben. wenn ich solche 2-dim arrays durchgehn will krieg ich nämlich ohne eine nullterminierung immer probleme...
0.o also ich bin mir nicht sicher was der microsoft c/c++ kompiler macht, aber ich denke dieser wird genauso wie gcc konstante char-arrays automatisch null-terminieren. ansonsten würde ein printf("hello, world"); nicht funktionieren
-
also unter Dev-C++ konnte ich deins nicht kompilieren, darum bin ich schnell auf linux umgestiegen
dort gehts jetzt. hab mal unsre teile zusammengefügt.
-
tweenki schrieb:
also unter Dev-C++ konnte ich deins nicht kompilieren, darum bin ich schnell auf linux umgestiegen
dort gehts jetzt. hab mal unsre teile zusammengefügt.
yup, unter windows mit c muss man leider fgets und konsorten benutzen. ist aber eigentlich auch schell geschrieben, wenn man auf die komfortabilität der automatischen speicherverwaltung von getline verzichten kann
-
kann mir jemand schnell sagen, wie man einen float auf zwei stellen nach dem komma formatiert bei printf ich weiss das nicht mehr? habs iwo mal gelesen find die seite aber nimmer? kann mir jemand eben schnell helfen?
-
tweenki schrieb:
kann mir jemand schnell sagen, wie man einen float auf zwei stellen nach dem komma formatiert bei printf ich weiss das nicht mehr? habs iwo mal gelesen find die seite aber nimmer? kann mir jemand eben schnell helfen?
lol, schau in doch nochmal in meinem beispiel nach: "%.2f" ist dein freund
-
Was wollt ihr mit
gets
an einem Automaten!?Greetz, Swordfish
-
Swordfish schrieb:
Was wollt ihr mit
gets
an einem Automaten!?Greetz, Swordfish
sorry, aber wo wird hier gets erwähnt?
-
sothis_ schrieb:
0.o also ich bin mir nicht sicher was der microsoft c/c++ kompiler macht, aber ich denke dieser wird genauso wie gcc konstante char-arrays automatisch null-terminieren.
das machen bestimmt 99.9% aller c-compiler.
-
danke für den tipp mit %.2f. kann man das nicht noch so verändern dass da kein punkt sondern ein komma kommt?
wie soll ich das mit dem stornieren machen?
ich hätt jetzt alles in eine riesige schleife gepackt die ich dann wieder von vorne anfange? oder wie sonst?
-
sothis_ schrieb:
Swordfish schrieb:
Was wollt ihr mit
gets
an einem Automaten!?sorry, aber wo wird hier gets erwähnt?
Sorry, meinte
fgets
(Du hast es erwähnt, in Verbindung mitgetline
.): Also, Was wollt ihr mitfgets
an einem Automaten!?greetz, Swordfish
-
Swordfish schrieb:
Also, Was wollt ihr mit
fgets
an einem Automaten!?na, sie wollen vielleicht eine zeichenkette einlesen? könnte das sein?
kennst du nicht die ollen kaugummiautomaten? die haben auch nur was gemacht, wenn man kräftig dran gedreht hat.
-
tweenki schrieb:
danke für den tipp mit %.2f. kann man das nicht noch so verändern dass da kein punkt sondern ein komma kommt?
wie soll ich das mit dem stornieren machen?
ich hätt jetzt alles in eine riesige schleife gepackt die ich dann wieder von vorne anfange? oder wie sonst?also willst du jetzt die 45€ verdienen oder nicht?
-
sothis_ schrieb:
also willst du jetzt die 45€ verdienen oder nicht?
natürlich
dann mach ichs jetzt einfach mal wie ich s machen würde.
-
tweenki schrieb:
natürlich
dann mach ichs jetzt einfach mal wie ich s machen würde.
-
mein problem ist ich bin selbst eigentlcih noch anfänger!!!!!
aber ich glaub ich krieg das hin
-
so ich bin jetzt fast fertig. jetzt muss ich nur noch einen algorithmus finden, mit dem ich das rückgeld berechenen kann und noch richtig zurückgeben kann.
Ich mach das dann übers wochenende.ich hab es unter linux geschrieben. wenn ich es unter windows schreiben soll muss ich halt noch etwas am input rumschreiben.
Ich hab es auf tweenki.funpic.de als zip hochgeladen.
-
ja das ist ja super!!! ja es sollte unter windows laufen!
-
Ich kann die sachen nicht wirklich öffnen!einmal stehen da nur komische sachen und einmal alles durcheinander oder alles hintereinander!da find ich nicht durch!Alle Quelltexte sollten kommentiert werden, d.h. an den Funktionen steht,
was diese machen und was ihre Parameter und R¨uckgabewerte bedeuten. Beschreiben sie die
Algorithmen!Der Quelltext sollte leserlich formatiert sein, d.h. der Inhalt eines
Blocks oder einer Kontrollstruktur wird eingerückt!