Veröffentlicht 15. Januar 200916 j 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
15. Januar 200916 j Ja er gibt 6 Buchstaben ein und alles was danach eingegeben wird erscheint nicht mehr auf dem Bildschirm oder in irgent einem speicher:)
15. Januar 200916 j 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?
15. Januar 200916 j 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
15. Januar 200916 j 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'; }
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.