显示打印出来的文本,就像它是由人写的一样(C)
如果可能的话,我想做的是idk,但既然我的老师说他会提高我的加州分,我就试试看 我有一系列的字符显示打印出来的文本,就像它是由人写的一样(C),c,printf,C,Printf,如果可能的话,我想做的是idk,但既然我的老师说他会提高我的加州分,我就试试看 我有一系列的字符 char myArray[100] 要做的是一步一步地打印所有数组,就像一个人在写一样,一个字符,延迟,另一个,延迟,等等 我该怎么做 在循环中打印myArray[i]并执行某些操作?我可以考虑做一个循环,在它中断之前运行很多次,但这不是一个优雅的解决方案 thx提前如果您正在使用Windows,请使用睡眠功能。如果您使用的是Linux,请使用usleep函数。将此交给您的老师,以获得高分。注意:
char myArray[100]
要做的是一步一步地打印所有数组,就像一个人在写一样,一个字符,延迟,另一个,延迟,等等
我该怎么做
在循环中打印myArray[i]并执行某些操作?我可以考虑做一个循环,在它中断之前运行很多次,但这不是一个优雅的解决方案
thx提前如果您正在使用Windows,请使用睡眠功能。如果您使用的是Linux,请使用usleep函数。将此交给您的老师,以获得高分。注意:你可能会被要求解释它
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
void my_delay (int millisec)
{
clock_t start = clock(), end = start + (millisec*CLOCKS_PER_SEC/1000);
while (clock() < end) ;
}
void stutter_write (char *string)
{
int i, typos;
while (*string)
{
// random delay
my_delay (1+(rand() & 255));
// randomly inject typos
typos = 1+(rand() % 20);
if (typos < 4)
{
for (i=0; i<typos; i++)
{
// wrong digit
if (isdigit(*string))
putchar ((rand() % 10)+'0');
else
// random letter
putchar ((rand() % 26)+'a'+32*(rand() & 31 < 10));
fflush (stdout);
// wait for it ..
my_delay (200+(rand() & 511));
}
// oh blast. backspace:
while (typos--)
{
putchar (8);
fflush (stdout);
my_delay (100+(rand() & 127));
}
}
// space, lowercase or number: fast
if (*string == ' ' || islower(*string) || isdigit(*string))
{
my_delay (250);
} else
// uppercase: slightly slower
if (isupper(*string))
{
my_delay (350);
} else
// some common symbols on keyboard: unshifted
if (strchr("[]=-';.,/", *string))
{
my_delay (400);
} else
// all others are shifted and/or hard to find or something like that
my_delay (600);
putchar (*string);
fflush (stdout);
string++;
}
}
int main (int argc, char **argv)
{
int i,j;
srand(0);
for (i=1; i<argc; i++)
{
if (i > 1) stutter_write (" ");
stutter_write (argv[i]);
}
printf ("\n");
return 0;
}
。。字符串将出现在您的控制台中,就好像是由一个狩猎和挑选打字员键入一样。调整延迟率以模拟更高级的打字员
模仿更自然的拼写错误要难得多。我写作时常见的拼写错误有:键入几个单词,仔细考虑,全部退格,然后键入其他内容;换位代替了什么,忘记了移位0代替了什么,错误的键盘行wbat代替了什么,键盘上的一个字符上移了ehat代替了什么,忘记了一个字符wat代替了什么。从来没有听说过这个功能,这一切都是兼容的吗?我要做些调查
stutter Here is a long string, which will be output as typed by a human. No, really.