gpt4 book ai didi

c - 如何在 scanf() 中期望不同的数据类型?

转载 作者:太空狗 更新时间:2023-10-29 15:19:58 25 4
gpt4 key购买 nike

我正在用 C 开发一个国际象棋游戏,只是为了练习。在游戏开始时,用户可以输入 4 个东西:

  • <whitespace> COL(即 2 2 )
  • 'h'寻求帮助
  • 'q' 退出

如何使用 scanf期望 2 个整数或 1 个字符?

最佳答案

看起来最明智的做法是阅读整行,然后再决定它包含什么。这不包括使用 scanf,因为它会消耗内容 stdin 流。

尝试这样的事情:

char input[128] = {0};
unsigned int row, col;
if(fgets(input, sizeof(input), stdin))
{
if(input[0] == 'h' && input[1] == '\n' && input[2] == '\0')
{
// help
}
else if(input[0] == 'q' && input[1] == '\n' && input[2] == '\0')
{
// quit
}
else if((sscanf(input, "%u %u\n", &row, &col) == 2))
{
// row and column
}
else
{
// error
}
}

关于c - 如何在 scanf() 中期望不同的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18329075/

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