Nicht umsonst implementieren andere Produkte komplizierte Plugin-APIs an die man sich dann per .dll oder .so (s.o.) ranflanschen kann bzw. nutzen fremde oder eigene Scriptsprachen-Interpreter.
Zed(gast) schrieb:
Ich hab mir überlegt jedem Befehl beim Senden ein \0 anzuhängen. Oder gibts da eventl. ne bessere Lösung.
kannste so machen oder du nimmst ein anderes trennzeichen, irgendwas, das in deinen kommandos nicht vorkommt. wenn ein kommando aus mehreren wörten besteht, bietet sich noch ein zeichen für zeilenende an. damit sollte es der server prima parsen können.
CStoll schrieb:
net schrieb:
in c kann man das mit va_lists machen.
merke: was c++ kann, kann c schon lange!
Klar kannst du das machen - jetzt mußt du nur noch zur Laufzeit herausfinden, wieviele Parameter (und was für welche) da angekommen sind. Und dafür gibt es keine Standard-Methode.
da hast du natürlich recht. aber bestimmt kann man was mit #defines tricksen um c++-ähnliche default params oder überladungen nachzubilden.
ok, danke. mit der erklärung verstehe ich jetzt auch wieso der pointer gelegentlich auf den string parameter des fprintf befehls gezeigt hat. und ich dachte schon der wahnsinn hätte mich gepackt. glück gehabt. danke
ich habe bei diesem programm das erste mal speicher dynamisch reserviert. ich hatte nicht daran gedacht das ich das auch bei den elementen auch so machen kann. danke für die tips
hm, ist auch ne gute idee.
ich habe mal beide Programme fertiggemacht und lasse dann die anderen aus meine mteam entscheiden, ob sie was lernen möchten oder nicht
Auf jeden fall vielen Dank nochmal für eure fixe Hilfe! ich werd bestimmt noch öfters mal vorbeischaun, lol
Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
FILE* fout = fopen("daten.txt","w");//alter Inhalt wird dabei vernichtet
FILE* fout = fopen("daten.txt","r+");//alter Inhalt bleibt erhalten und wird eventuell überschrieben
FILE* fout = fopen("daten.txt","a");//hängt Daten ans Ende der Datei an
Such dir eine Variante aus
Bauarbeiterjoe schrieb:
Wie der Titel schon verät möchte ich zwei unterprogramme "gleichzeitig" ausführen bzw eine Funktion die eine Endlosschleife enthält immer im HIntergrund ausführen geht das?
du kannst es so machen, dass keine funktion eine endlosschleife ausführt somndern die schleife befindet sich in der 'main' und beide funktionen merken sich nur ihren zustand, damit sie beim nächsten aufruf genau da weitermachen.
beispiel:
void f1 (void)
{
static int state = 0; // zustand bleibt erhalten: 'static'
printf ("f1: %d\n", state * 2);
// ...mach noch was
state++; // nächsten zustand einnehmen
}
void f2 (void)
{
static int state = 0;
printf ("f2: %d\n", state * state);
state++;
}
void main()
{
for(;;) // hier ist die endlosschleife
{
f1();
f2();
// ... hier weitere funktionen rein
}
}
hehe,
es wurden da noch mehr Möglichkeiten gezeigt, aber gut, ich glaub, ich nehm deine Möglichkeit ;).
Ist ja schonmal gut zu wissen, dass das so ist, thx.
mfg chuqa
Beim Namen und Beruf würde ich kein -1 einsetzen, sondern einen leeren String - und den erreichst du durch "strcpy(pers[i].name,"");" oder "pers[i].name[0]='\0';" den Alterswert kannst du einfach so überschreiben per "pers[i].alter=-1;".
Was für ein Sortieralgorithmus soll das denn überhaupt sein?
Ich kann mir nicht vorstellen, dass das Programm absteigend sortieren konnte. Da sind einige ziemlich üble Fehler drin.
Als erstes würde ich das Einlesen komplett vom Sortieren trennen. Auch das mit den Arrays mit einem Element ist merkwürdig. Warum packst du das bei den Funktionen menge und nochmal nicht einfach in den Rückgabewert?