Ich versuche, ein Programm zu Testzwecken zu schreiben, die eine Folge von pseudozufälligen druckbaren ASCII-Zeichen generiert, wo Sie in die Befehlszeile eingeben, wie viele Zeichen Sie möchten. Im Moment funktioniert es nicht so gut. Die Reihenfolge ist fast immer die Mehrheit, und es druckt nicht immer die Anzahl der Zeichen, die ich sage, es zu drucken. Hier ist mein Code; Was stimmt damit nicht? Ich benutze die Zeit als einen Samen für die zufällige Funktion.zufällige druckbare ASCII-Zeichen in c
hinweis: es ist es mir nicht wert, einen komplizierteren algorithmus als einen zu verwenden, der srand() und rand() verwendet.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[]) {
int c;
int i;
int limit;
sscanf(argv[1], "%d", &limit);
srand((unsigned int)time(NULL));
for (i = 0; i < limit; i++) {
c = rand();
if (c != 9 && c != 10 && c <= 32 && c >= 127) {
i--;
}
else {
putchar(c);
}
}
return 0;
}
danke!
obwohl diese Antwort in C# ist, sollte es relativ sein einfach in C umzuwandeln: http://stackoverflow.com/questions/4221001/algorithm-for-generating-a-random-numeric-string-10-000-chars-in-length/42210 15 # 4221015 –
Warum haben Sie entschieden, dass 9 und 10 unter "druckbar" fallen? –
Wahrscheinlich meinte er '' \ n'' – ruslik