gpt4 book ai didi

c - 如何输入包含 '\n'的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:32 25 4
gpt4 key购买 nike

我创建了一个自动输入机器人,它模拟用户给出的字符串字符。

我的代码是这样的:

    printf("Enter speed (wpm) (1 to 11750):");
scanf("%d", &speed);
if(speed < 1 || speed > 11750)
{
printf("\nPlease provide CORRECT DATA\n");
return -1;
}

printf("Paste the String : \n");
gets(exaArray);
exaArrayLength = strlen(exaArray);
relation = (int)11750/speed;
printf("typing will start in 2 sec-\n");
Sleep(2000);
i=pos=0;

while(i<=exaArrayLength)
{
Sleep(relation);
if((exaArray[pos]>96) && (exaArray[pos]<123)) //small letters
{
keycode=0x41 + (exaArray[pos]%97);
smallLetter(keycode); //function for key simulation
}
.....

我正在使用 gets 函数获取输入。当我粘贴不包含 Enter 的文本时,该程序工作正常。所以这个程序用一个段落就可以正常工作。但是如果用户提供了多个段落,那么它只模拟第一段。

因为 gets 在 '\n' 处终止。哪个函数可以接受多个段落输入并将其分配给一个字符串。

最佳答案

这实际上是一个非常困难和复杂的问题,并且不容易以自动化方式解决。

循环读取似乎是一个很好的解决方案,但随后您会遇到没有更多输入并且读取函数只是阻塞等待更多输入的情况。最简单的方法是让用户输入“文件结尾”组合键(CTRL-D 在 Linux 或 OSX 等 POSIX 系统上,CTRL-Z 在Windows),但必须告知用户这样做。

问题源于您的程序根本不知道要读取多少数据,并且没有任何函数能够基本上在用户认为“就是这样,没有更多数据了”时读懂用户的想法".

除了上述让用户给出“文件结尾”的解决方案外,您还可以使用其他序列或特殊键甚至输入短语来标记结尾,但这一切都归结为:循环读取输入直到用户说“不再输入”。

关于c - 如何输入包含 '\n'的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37003004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com