私は、コマンドラインにいくつの文字を置くかという、擬似ランダム印刷可能なASCII文字のシーケンスを生成するテスト目的のプログラムを作成しようとしています。今はうまく動いていません。シーケンスはほとんど常に大多数ですか?s、それは私が印刷するよう指示する文字の数を常に印刷するとは限りません。ここに私のコードです。どうしたの?私は時間をランダム関数の種として使用します。ランダムな印刷可能なASCII文字をCで生成する
注:srand()とrand()を使用するアルゴリズムより複雑なアルゴリズムを使用する価値はありません。
#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;
}
ありがとうございました!
この答えはC#であるが、それは比較的にする必要がありますCに変換するのは簡単です:http://stackoverflow.com/questions/4221001/algorithm-for-generating-a-random-numeric-string-10-000-chars-in-length/42210 15#4221015 –
9と10が「印刷可能」に該当すると判断したのはなぜですか? –
恐らく彼は ''\ n''を意味していたでしょう – ruslik