da-beauty Geschrieben 15. Januar 2009 Geschrieben 15. Januar 2009 Guten Morgen liebe Fachinformatiker;) Ich möchte den Benutzer hindern mehr als 6 Buchstaben einzugeben, welche Möglichkeiten hätte ich dazu? Danke Für eure Tipps Zitieren
Guybrush Threepwood Geschrieben 15. Januar 2009 Geschrieben 15. Januar 2009 nur 6 Buchstaben einzulesen? Zitieren
da-beauty Geschrieben 15. Januar 2009 Autor Geschrieben 15. Januar 2009 Ja er gibt 6 Buchstaben ein und alles was danach eingegeben wird erscheint nicht mehr auf dem Bildschirm oder in irgent einem speicher:) Zitieren
da-beauty Geschrieben 15. Januar 2009 Autor Geschrieben 15. Januar 2009 hmmmmmmm das ich nicht weiß wie ich hinbekomme das es so Funktioniert! Zitieren
TDM Geschrieben 15. Januar 2009 Geschrieben 15. Januar 2009 Na alles was drüber ist, wird doch eh verworfen. oder willst du eine ungepufferte Eingabe, bei der wirklich nur 6 Zeichen eingelesen werden können und dann, ohne einen Klick auf Enter, mit dem Programm fortgefahren wird? Zitieren
da-beauty Geschrieben 15. Januar 2009 Autor Geschrieben 15. Januar 2009 Ich möchte schon das die ersten 6 buchstaben in den Puffer geschrieben werden, mit den arbeite ich dann auch. Aber sobald er mehr eingibt soll einfach "nix" passieren und egal welchen Buchstaben er drückt, nix mehr dazugeschreiben werden Zitieren
TDM Geschrieben 15. Januar 2009 Geschrieben 15. Januar 2009 Das ist für mich ungepuffert, da gepufferte Eingaben meines Wissens nach erst auf Enter warten und dann den String zur Längenüberprüfung zurückgeben. So oder so, such dir aus, was du machen willst: #include <stdlib.h> #include <conio.h> void scanf6(char* lp); void getch6(char* lp); int main(int argc, char* argv[]) { char lp[8]; char lp2[8]; printf("scanf6:"); scanf6(lp); printf("\n%s\n", lp); printf("getch6:"); getch6(lp2); printf("\n%s\n", lp2); return 0; } void scanf6(char* lp) { int i = 0; char *buffer = malloc(100*sizeof(char)); scanf("%s", buffer); do { lp[i] = buffer[i]; i++; }while(i < 6); free(buffer); buffer = NULL; lp[i] = '\0'; } void getch6(char* lp) { int i = 0; int buffer; while (i<6) { buffer = getch(); if (buffer == 0x0A) break; lp[i] = buffer; printf("%c", lp[i]); i++; } lp[i] = '\0'; } Zitieren
Guybrush Threepwood Geschrieben 15. Januar 2009 Geschrieben 15. Januar 2009 char text[7]; scanf("%6s",text);[/PHP] Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.