扫描将新行保存在内存中并重新分配



我把代码放在下面(我没有上传图片的权限,所以我把它放在了一个链接中(。因为当我输入一个字符时,我需要按下回车键,回车会保存在内存中,并运行两次循环。我试着把继续,并希望这将";清洁存储器";。有没有关于如何使用scanf的建议?(我不想使用其他功能(。

第二个问题——当我在开头编写函数时,我传递了在主函数中声明的变量。我看到我可以在函数中重新分配他的值,所以我改为";返回选择";我会将其分配给变量。我的问题是:为什么我可以在主循环中重新分配值?因为我把循环放在main中,并在main中声明变量?

char continuePlaying()
{
char choose[];
printf("Do you want to continue playing? please choose Y or X: n");
scanf("%c", &choose);
while(choose != 'Y' && choose != 'X')
{
printf("You entered wrong option. please choose Y or X: n");
scanf("%c", &choose);
}
return choose;
}

您的帖子没有清楚地解释您需要什么。我所理解的是,你需要在不按回车键的情况下阅读一些输入。如果这是你需要帮助的地方,我会帮你的。

假设您在不按回车键的情况下从键盘上读取一个字符。

#include <stdio.h>
#include <stdlib.h>
char read_character() {
system("/bin/stty raw");
char trash=(getchar());
system("/bin/stty cooked");
}
char continue_playing() {
char choice = 'N';
printf("Do you want to continue playing?(Y/N): ");
choice = read_character();
return choice;
}

最新更新