Hallo zusammen, anbei ein Programmsegment: void InputStr(char *buffer, unsigned short maxlen, int x, int y) { short key; unsigned short i = 0; unsigned short j = 0; buffer[0] = 0; char lis[8]; char *num; char num1[8]; unsigned short anz; unsigned short anz1; // float zahl; for(j =0;j<8;j++) lis[j] = 0; num1[j] = 0; do { MoveTo (x+50,y); printf ("%s_ ", buffer); // Note that two spaces are required only if the F_4x6 font is used key = ngetchx (); if (key >= ' ' && key <= '~' && i < maxlen) buffer[i++] = key; else if (key == KEY_BACKSPACE && i) i--; buffer[i] = 0; } while (key != KEY_ENTER); num = strpbrk(buffer,"="); anz = strlen(buffer)-strlen(num); anz1 = strlen(buffer)-strlen(num+1); strncpy(lis,buffer,anz); for (j=anz1;j<=strlen(buffer);j++) strncpy(num1,buffer[j],1); es funktioniert bis zur letzten Zeile, jedoch die letzte Zeile!! Ich bekomme die Fehlermeldung: Passing argument 2 of '*(*200u + 2484u)' makes pointer from integer without a cast. Was ist hier falsch?? Kann mir jemand helfen, und danke im voraus
>> strncpy(num1,buffer[j],1);
buffer[j] gibt den Inhalt des j.Elements von buffer an, aber nicht
seine Adresse!
Es müßte richtig heißen:
strncpy(num1, buffer + j, 1);
Egal, ob das Ganze sinnvoll ist oder nicht.
Bernhard
ist mir auch klar, ich wollte lediglich von einem string (z.B "=123") nur den Zahlteil haben, also nur "123", hatte aber keinen anderen Befehl zur Verfügung. Jedenfalls vielen Dank für Deine Antwort, Gruss Balazs (weiss allerdings immer noch nicht wie man so macht)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.