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
Guybrush Threepwood Geschrieben 15. Januar 2009 Geschrieben 15. Januar 2009 nur 6 Buchstaben einzulesen?
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:)
da-beauty Geschrieben 15. Januar 2009 Autor Geschrieben 15. Januar 2009 hmmmmmmm das ich nicht weiß wie ich hinbekomme das es so Funktioniert!
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?
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
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'; }
Guybrush Threepwood Geschrieben 15. Januar 2009 Geschrieben 15. Januar 2009 char text[7]; scanf("%6s",text);[/PHP]
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden